Django中的Hashtags功能

时间:2018-05-24 17:41:23

标签: django python-3.x django-models django-views

我正在构建Instagram克隆,我想实现此功能。 假设用户上传了一张图片,其描述如下:

This is me #HappyTimes #tbh #helloall #blogger #writer

我希望所有主题标签自动转换为链接。图像描述和主题标签应该没有单独的字段;用户写入描述并转换标签。

我该如何实现?目前,我有一个用户,用户个人资料和图像的模型。图像将通过外键连接到用户。

1 个答案:

答案 0 :(得分:0)

首先,我假设通过'转换为链接',你的意思是一个url,例如example.com/hashtag,其中hashtag将是URL的内容。

如果您希望在用户输入主题标签时将其转换为链接,则需要使用javascript。如果你想在提交时进行更改,你也可以在python中进行更改。基本上,这就是你需要做的事情:

  1. 获取您正在使用的输入字段的内容。可能将其保存为字符串。
  2. 隔离以主题标签开头的单词。在python中,我可能会将字符串转换为一个列表,该列表将用空格分隔。 (对字符串使用.split()方法。
  3. 对于列表中以标签开头的每个字符串,最后添加 at the beginning, and a 。显然,您将不得不决定自己的URL结构。为了获得实际的标签文本,可能需要从[1:]
  4. 中获取一段字符串
  5. 将列表转回字符串
  6. 确保在结果模板中允许HTML。此外,请确保使用bleach之类的内容清理用户的输入。如果您忘记这样做,我不负责任,您的网站被XSS攻击。
  7. 这是我能想到的最简单的方法。您可以在表单的save方法中的python中,或在视图本身中,或通过javascript实现此功能。