我有一个具有ManyToMany字段的模型。它来自一个预定义模式的合法数据库。当我为该模型创建模型表单时,它使用Multi select字段来呈现ManyToMany字段。创建数据库的人想要一个选择字段(而不是多个)。
# models.py
class MyModel(models.Model):
mtmfield = models.ManyToManyField(MyModel2)
# forms.py
class MyModelForm(ModelForm):
class Meta:
model = MyModel
widgets = Select() #this is what I want.
使用select不允许我使用form.save()
保存模型,因为它需要一个值列表。如果我绕过"它会工作吗?这通过覆盖我的模型表单的保存功能捕获在Selected中选择的MyModel2并手动保存它?
答案 0 :(得分:0)
您可以考虑使用Select2。它可以显示为单个选择样式元素,但允许选择多个值。
答案 1 :(得分:-1)
只需将此功能添加到您的表单:
def clean_mtmfield(self):
data = self.cleaned_data['mtmfield']
return [data]