django - 获取与使用 ModelMultipleChoiceField 时添加的对象相关的所有对象
问题描述
我正在尝试创建一个注册表单,用户可以在其中从列表中指定许多类别和语言,但是当我从列表中选择一两个对象进行注册时,我发现新用户存储了所有对象。就像我检查了所有对象一样。
表格.py
class SignUpForm(UserCreationForm, ModelForm):
categories=forms.ModelMultipleChoiceField(queryset=Category.objects.all(),
widget=forms.CheckboxSelectMultiple(), required=True)
languages = forms.ModelMultipleChoiceField(queryset=Language.objects.all(),
widget=forms.CheckboxSelectMultiple(), required=True)
class Meta:
model = User
fields = ['username', 'email','categories', 'languages']
模型.py
class User(AbstractUser, models.Model):
password1 = models.CharField(max_length=50)
categories = models.ManyToManyField('Category')
languages = models.ManyToManyField('Language')
def __str__(self):
return self.username
class Category(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Language(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
视图.py
class SignUp(CreateView):
form_class = SignUpForm
success_url = reverse_lazy('index')
template_name = 'registration/signup.html'