Django Form从特定群组添加用户

fnvucqvd  于 2023-03-04  发布在  Go
关注(0)|答案(2)|浏览(95)

我是新来的 Django 。
这是我的模型:

class Classe(models.Model):
    title = models.CharField(max_length=25)
    titulaire = models.ForeignKey(User, related_name='titulaire', on_delete=models.SET_NULL, null=True, blank=True)

在一个表单中,我想添加“titulaire”字段,并从特定组中选择用户。
我会试试类似的方法。

class ModifyClasse(ModelForm):
  class Meta:
      model = Classe
      fields = ['title' , 'year', 'titulaire', 'cotitulaire']
      def __init__(self, *args, **kwargs):
        qs = User.objects.filter(groups__name__in=['Profs'])
        titulaire = kwargs.pop('qs', None)
        super(ModifyClasse, self).__init__(*args, **kwargs)
        del self.fields['titulaire']
aiazj4mn

aiazj4mn1#

您还可以修改ModifyClasse表单中的__init__方法,将titulaire字段的查询集设置为仅包含所需组中的用户,以便:

class ModifyClasse(ModelForm):
    class Meta:
        model = Classe
        fields = ['title', 'titulaire']

    def __init__(self, *args, **kwargs):
        super(ModifyClasse, self).__init__(*args, **kwargs)
        self.fields['titulaire'].queryset = User.objects.filter(groups__name='Profs')
qlvxas9a

qlvxas9a2#

__init__中使用ModelChoiceField,以便:

self.fields["titulaire"] = forms.ModelChoiceField(query=User.objects.filter(groups__name__in=['Profs']), empty_text="Select")

相关问题