Django:检查模板中多个字段中的值

Django:检查模板中多个字段中的值,django,django-models,django-templates,Django,Django Models,Django Templates,我的Django应用程序中有以下型号: class Group(models.model): name=models.CharField(max_length=30) users=Models.ManyToManyField(User) 在我的模板中,我希望显示每个组,以及每个组下面的一个按钮。如果用户已经在组中,我想显示一个“离开组”按钮,如果他们不在组中,我想显示一个“加入组”按钮 确定当前登录用户是否在每个组中的最有效方法是什么?我不希望为显示的每个组查询db,如果我只执

我的Django应用程序中有以下型号:

class Group(models.model):
    name=models.CharField(max_length=30)
    users=Models.ManyToManyField(User)
在我的模板中,我希望显示每个组,以及每个组下面的一个按钮。如果用户已经在组中,我想显示一个“离开组”按钮,如果他们不在组中,我想显示一个“加入组”按钮

确定当前登录用户是否在每个组中的最有效方法是什么?我不希望为显示的每个组查询db,如果我只执行以下操作,似乎会发生这种情况

{% if user in group.users.all %}

谢谢。

在您的视图中,创建此用户所属的组ID的
集。
set
的主要用途之一是成员资格测试

user_group_set = set(current_user.group_set.values_list('id',flat=true))
然后将其传递到模板上下文中:

return render_to_response('template.html',{'user_group_set':user_group_set})
在模板中,对于每个组,请使用:

{% if group.id in user_group_set %}