Python 如何使注释中的标记用户成为指向该用户的超链接';谁的主页?(Django)
就像facebook一样,如果我在我的评论中标记某人,比如“@Mike”,然后在我发布之后,在网站上,我可以看到我的评论,评论的内容有@Mike,这是一个超链接,我点击它,它可以将我重定向到该用户的页面。我不知道该怎么做,有什么建议吗Python 如何使注释中的标记用户成为指向该用户的超链接';谁的主页?(Django),python,html,django,web,hyperlink,Python,Html,Django,Web,Hyperlink,就像facebook一样,如果我在我的评论中标记某人,比如“@Mike”,然后在我发布之后,在网站上,我可以看到我的评论,评论的内容有@Mike,这是一个超链接,我点击它,它可以将我重定向到该用户的页面。我不知道该怎么做,有什么建议吗 顺便说一句,目前我可以将标记的用户名检索到我的后端,我只是不知道如何将该用户名作为超链接呈现回来。您可以使用模板标记:安全 假设您的post上下文变量是:quote=@Mike是个傻瓜 抓取@Mike,添加html,使其成为链接,并在保存帖子时重新插入。因此,保存
顺便说一句,目前我可以将标记的用户名检索到我的后端,我只是不知道如何将该用户名作为超链接呈现回来。您可以使用
模板标记
:安全
假设您的post上下文变量是:quote
=@Mike是个傻瓜
抓取@Mike
,添加html
,使其成为链接,并在保存帖子时重新插入。因此,保存的帖子是:
quote
=是个傻瓜
然后在html模板中使用safe:
{{ quote|safe }}
以下是safe
模板标记的文档链接:
Facebook在@
之后的每个按键处都会从浏览器向他们的数据库发出请求。一旦您选择用户名,比如说@Mike
,他们会使用您选择的值向表单中添加一个输入字段,类似于:
<input value="@12345678:Mike"></input>.
。
您提交评论,服务器将处理您的请求,使用
值将文本框中的@Mike
替换为他们想要的任何内容。这应该有效
保存表单后,请放入此脚本
p=重新编译('@[a-z]+'))
对于表单中的word.comment.split():
如果p.匹配(单词)!=无:
新单词=列表(单词)[1:len(列表(单词))]
名称=“”
对于新词中的元素:
名称+=元素
在“如果”条件下写在行下方(不能在此处正确缩进)
new_comment=re.sub('@[a-z]+','',yourform.comment)`
现在在模板中,将“新注释”渲染为安全的
{{new_comment | safe}}
捕获URL中的某个用户唯一字段(ID?用户名?),并在某个“用户页面”模板上呈现该用户的信息?然后,只需将链接指向正确的位置即可。URL调度几乎涵盖了如何将URL处理为“静态”(始终指向相同的内容)或“动态”(使用参数)。创建必要的视图,创建指向该视图的url,使用用户名(或其他东西)作为用户标识符,您应该很好。在我标记了某个用户之后,我将其呈现到模板{comment}
,因此页面源代码就像
@Mike是个傻瓜
,我的意思是我如何制作这个“@Mike”超链接,只是这个“@Mike”,不是整个
标签内容。酷,安全模板标签就是我这里需要的所有东西。谢谢
new_comment=re.sub('@[a-z]+','<a href='+name+'s_profile>'+name+'</a>',yourform.comment)`