rol*_*one 5 django django-templates django-models
我的Django应用程序中有以下模型:
class Group(models.model):
name=models.CharField(max_length=30)
users=Models.ManyToManyField(User)
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我想显示每个组,以及每个组下面的按钮.如果用户已经在组中,我想显示"离开组"按钮,如果他们不在组中,我想显示"加入组"按钮.
确定当前登录用户是否在每个组中的最有效方法是什么?我宁愿不查询显示的每个组的数据库,如果我只是执行以下操作,它似乎会发生.
{% if user in group.users.all %}
Run Code Online (Sandbox Code Playgroud)
谢谢.
在您的视图中,创建set该用户所属的组ID.其中一个主要用途set是成员资格测试.
user_group_set = set(current_user.group_set.values_list('id',flat=true))
Run Code Online (Sandbox Code Playgroud)
然后将其传递到模板上下文中:
return render_to_response('template.html',{'user_group_set':user_group_set})
Run Code Online (Sandbox Code Playgroud)
在您的模板中,对于每个组使用:
{% if group.id in user_group_set %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1618 次 |
| 最近记录: |