簡體   English   中英

在 Django 中提及或標記用戶或任何模型

[英]mentioning or tagging users or any models in django

假設我有一個社交網絡的 django 項目,這個網站有很多用戶。 所有用戶都來自 django.contrib.auth.models.User 類。 現在,假設一個用戶寫了一個博客,並在其中提到了另一個類似於 twitter 的帶有“@”的用戶。 那么究竟如何做到這一點呢? 應該采取什么樣的方法?

而不僅僅是用戶模型,而是如何使用任何自定義模型來做到這一點? 就像我有一個博客模型並且每個博客都有一個標題,如何用這個標題提及? 最重要的是,這種提及應該是自動的。 比如如果一個用戶的名字是“PhantomWarrior”,那么如果一個人寫了“@Phant”並且他還在寫,它應該自動預測用戶名“PhantomWarrior”並給用戶選項來選擇提及。 同樣如何用博客的標題來做到這一點?

我找到了這篇文章: 如何在 stackoverflow 中的 django 開發項目上使用“@”提及/標記用戶談論這件事,但答案有點不滿足我想要的。

那么如何做到這一點呢? 任何幫助都感激不盡。

您可以通過兩種方式做到這一點。 在任何情況下,您都需要將博客文章中的 m2m 字段添加到用戶模型。

  1. 最簡單的解決方案。 在模型中進行任何創建或更改后,您需要檢查所有@NAME模式的內容並解析文本,例如使用正則表達式。 在此之后,您需要在用戶模型中搜索所有已建立的模式並將其添加到博客文章中的 m2m 字段中。
  2. 這個解決方案在大多數情況下使用,就像你寫的那樣。 您需要添加前端組件,每次在文本框中寫入 @ 時都會打開自動完成功能。 此自動完成組件應連接到 api 方法,該方法根據搜索模式返回用戶名和 ID 列表。 當您在自動完成中選擇用戶時,您需要將他的 ID 存儲在前端的某個存儲中。 發送表單時,您將用戶 ID 與所有其他表單數據一起發送,並將其保存在博客文章的 m2m 字段中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM