【问题标题】:How to create a custom filter tag for a Django object?如何为 Django 对象创建自定义过滤器标签?
【发布时间】:2020-11-07 16:31:11
【问题描述】:

我有一个名为 Profile 的模型。 我想根据这个想法创建一个自定义过滤器标签: Profile.objects.filter(user=request.user)

然后我可以在模板中使用这个过滤器。 只需完成此功能: `

from django import template

register = template.Library()
from ..models import Profile
@register......
def filter_profile():
    ....

然后如何从模板中使用它。

谢谢。

【问题讨论】:

    标签: django django-templates django-filter django-template-filters django-filters


    【解决方案1】:

    假设您拥有带有用户一对一字段的 Profile 模型(这是最可能的情况),您根本不需要创建这样的过滤器。您可以直接访问模板中的相关模型。这是一个例子:

    型号:

    class Profile(models.Model):
       ...
       user = models.OneToOneField(User, ...)
       ...
    

    模板:

    {{ request.user.profile }}
    

    【讨论】:

      【解决方案2】:

      如果要显示属于当前用户的项目,可以这样做:

      {% if user == request.user%}
        <!-- Do something -->
      {% endif %}
      

      这将只显示与当前用户相关的项目。

      【讨论】:

        猜你喜欢
        • 2011-01-06
        • 1970-01-01
        • 1970-01-01
        • 2018-06-25
        • 2017-06-05
        • 2012-08-19
        • 2019-05-20
        • 2016-06-29
        • 2019-10-22
        相关资源
        最近更新 更多