我有一个具有ManyToMany字段的模型。它来自预定义模式的合法数据库。当我为该模型创建模型表单时,它使用“多选”字段呈现“ManyToMany”字段。创建数据库的人想要一个选择字段(而不是多个)。ManyToManyField使用选择小部件
# 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并手动保存它,它会工作吗?
我想边说form.MultipleChoiceField'将工作一样很好。它期望一个或多个值。你可以使用'form.save()'。但你试过了吗? – xyres
是的,我做到了。我知道它的工作原理。但我希望它看起来像一个选择字段。作为演示文稿。 – Apostolos
如果您想让它看起来像一个选择字段,请执行此操作 - “forms.MultipleChoiceField(widget = forms.Select)'。这会给你一个选择字段,但你将无法选择多个值。 – xyres