我有一個具有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