如何组合我的模板标签和基本过滤器| linebreaksb

2024-09-30 01:34:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我对该站点的右侧边栏有问题: 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 %}

我需要一个过滤器。我不知道,怎么插这个。你知道吗

当然,我可以在每个视图中发送注释值,并在每个模板中插入{%content block%},但是如果我想更改侧边栏,那会花费很多时间。你知道吗


Tags: register模板getreturnobjectsvaluedeftag
1条回答
网友
1楼 · 发布于 2024-09-30 01:34:44

简单的解决方案:使用单个标记返回注释,即:

模板标记:

@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 %}

作为一个额外的好处,您现在只需要一半的db查询;)

注意:对于django<;1.9,您必须使用assignment_tag,请参阅文档以获得确切的版本。你知道吗

相关问题 更多 >

    热门问题