Django的。动态写入通知并正确呈现它们

时间:2014-05-26 20:38:57

标签: python html django url notifications

上周我问了this问题,还没有得到答案。现在我意识到它并没有指出真正的问题。 所以,我想为用户写一个通知,然后将其呈现给模板。我的想法是在views.py文件中编写所有html,然后在模板中使用{html | safe}标记。我希望通知是这样的:

用户主题上投票帖子

所以,我尝试将html编写为字符串并使用%s替换用户名和主题名称,如下所示:

string_to_render = "<a href = '{% url ... %}'> %s </a> voted up your <a href = '{% url ... %}'> post </a> on the <a href = '{% url ... %}'> %s </a>" %(user, topic)

%s用于替换用户和主题名称。但是python也理解django&#34;%url&#34;作为无符号十进制替换,我得到错误:

%u format: a number is required, not unicode

所以,如果没有这个问题的简单解决方案。我愿意接受有关如何呈现通知的建议。也许我不应该在渲染之前编写整个通知,我应该尝试在html上编写它们并使用许多内容变量?这也需要许多{%if-else%}模板标签导致投票只是我想给用户的通知之一。这只是一个想法,但肯定有更好的方法来做到这一点。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要escape %模板标记附近的url

string_to_render = "<a href = '{%% url ... %%}'> %s </a> voted up your <a href = '{%% url ... %%}'> post </a> on the <a href = '{%% url ... %%}'> %s </a>" % (user, topic)

尽管正如@Daniel Roseman所说,最好在主html模板中创建一个模板include,并在渲染时将usertopic传递到上下文中。< / p>