Django 自定义筛选器-需要两个参数

Django 自定义筛选器-需要两个参数,django,django-models,django-templates,Django,Django Models,Django Templates,在我正在使用的项目管理应用程序中,如果您是票证的所有者(即创建者)和/或票证所属项目的管理员,则应该可以编辑/删除票证 在用于显示项目的模板中,我希望使用自定义过滤器来确定此值,如下所示: {% if ticket|owner_or_admin:user %} <p> <a href="{% url ticket_edit project.id %}">Edit</a> <a id="delete_link" hr

在我正在使用的项目管理应用程序中,如果您是票证的所有者(即创建者)和/或票证所属项目的管理员,则应该可以编辑/删除票证

在用于显示项目的模板中,我希望使用自定义过滤器来确定此值,如下所示:

{% if ticket|owner_or_admin:user %}
    <p>
        <a href="{% url ticket_edit project.id %}">Edit</a>
        <a id="delete_link" href="{% url ticket_delete ticket.id %}">Delete</a>
    </p>
{% endif %}
型号:

class Project(models.Model):
    ... fields ...
    added_by_user = models.ForeignKey(User)

class Ticket(models.Model):
    ... fields ...
    user = models.ForeignKey(User)
那么,我如何提供两个参数呢?否则,自定义筛选器是否正确


提前谢谢

不能将多个参数传递给模板筛选器,但可以使用两个筛选器

模板:

{% if ticket|owner:user or project|admin:user %}
    <!-- blah -->
{% endif %}
(编辑:此外,过滤器代码中的布尔值应大写)

{% if ticket|owner:user or project|admin:user %}
    <!-- blah -->
{% endif %}
@register.filter(name='owner')
def ownership(ticket, user):
    return ticket.user == user

@register.filter(name='admin')
def adminship(project, user):
    return project.added_by_user == user