在Django中验证多对多关系中的对象

时间:2015-06-04 06:46:53

标签: python django

我有两个模型GroupUser。我在引用Group的{​​{1}}中有一个ManyToManyField。我还有一个中间模型User,用于存储多对多关系的附加数据(分配日期和成员类型)。

我有一个页面GroupUser,我将用户添加到该组。我的问题是,如果用户创建为类型1,则无法将其分配给其他组。如果与特定用户已存在关系且类型为1,我如何验证用户未分配给其他组?

我正在使用CreateView

/groups/group-<group_id>/create-user/

1 个答案:

答案 0 :(得分:0)

不太了解CreateView,但我的猜测是,覆盖get_form并调整user字段上的查询集。

def get_form(self, form_class):
    create_form = super(GroupUserCreateView, self).get_form(form_class)
    create_form.fields['user'].queryset = User.objects.exclude(groupuser__type=1)
    return create_form