0
在我的项目管理应用程序中,我有一个列出所有项目的页面,但是我想显示项目是否由用户拥有,如果用户是项目成员,或者两者都不是其中。这是我用下面的代码做模板:检查用户是否是会员
...
{% load custom_filters %}
...
{% for project in projects %}
{% if project|ownership:user %}
<div class="users_project label label-info">
Admin
</div>
<a href="{% url show_project project.id %}">{{ project }}</a><br/>
{% else %}
{% if project|membership:user %}
<div class="users_project label label-success">
Member
</div>
<a href="{% url show_project project.id %}">{{ project }}</a><br/>
{% else %}
<div class="users_project label label-error">
Not member
</div>
<a href="{% url show_project project.id %}">{{ project }}</a><br/>
{% endif %}
{% endif %}
{% endfor %}
这里使用的第一个自定义过滤器(项目|所有权)的作品像预想的那样:
@register.filter(name='ownership')
def ownership(project, user):
return project.added_by_user == user
...但至于其他(项目|会员)我需要帮助。
@register.filter(name='membership')
def membership(project, user):
return ?
的车型“用户”和“项目”有许多一对多的关系:
class Project(models.Model):
... other fields...
added_by_user = models.ForeignKey(User)
users = models.ManyToManyField(User, related_name='projects')
...这导致在一个数据库中的表这就是所谓的“project_users”它包含以下字段:
project_id (INT)
user_id (INT)