我有UserProfile,用户选择了一种语言。用户应该有可能选择多种语言,所以我尝试使用ManyToManyField,如下所示:
class Choices(models.Model):
languages = models.CharField(choices=settings.LANGUAGES, max_length=3)
def __unicode__(self):
return self.languages
class UserProfile(models.Model):
user = models.OneToOneField(User, null=True)
language = models.ManyToManyField(Choices)
在我的form.py中我做了:
class UserProfileForm(forms.ModelForm):
language = forms.MultipleChoiceField(required=False, choices=settings.LANGUAGES)
class Meta:
model = UserProfile
fields=[
'Pictures',
.....
]
问题是:选项显示在模板中,但在管理员中,ManyToManyField为空。因此表格可以运作但模型没有。有人可以告诉我为什么没有显示选项? M2M的错误在哪里?