我在该网站的右侧边栏出现问题: http://antonigin.pythonanywhere.com/
我需要在文本中创建换行符。我可以在帖子中补充一点,这不是问题。但边栏使用我的标签。
@register.simple_tag
def notetitle(value):
note = Note.objects.get(pk=value)
return note.title
@register.simple_tag
def notetext(value):
note = Note.objects.get(pk=value)
return note.text
我创建了该模板:
{% load note_def %}
{% block note %}
<h1>{% notetitle 2 %}</h1>
<p>{% notetext 2 %}</p>
{% endblock %}
我需要一个过滤器| linebreaksbr。我不知道如何插入这个。
当然,我可以在每个视图中使用我的笔记发送值,并在每个模板中插入{%content block%},但如果我想要更改侧边栏,则需要花费很多时间。
答案 0 :(得分:0)
简单解决方案:使用返回注释的单个标记,即:
模板标签:
@register.simple_tag
def get_note(value):
note = Note.objects.get(pk=value)
return note
模板:
{% load note_def %}
{% block note %}
{% get_note 2 as note %}
<h1>{{ note.title }}</h1>
<p>{{ note.text|linebreaksbr }}</p>
{% endblock %}
作为额外的好处,您现在只需要一半的数据库查询;)
注意:对于django&lt; 1.9您必须使用assignment_tag
,而不是使用您的确切版本的文档。