У меня есть модель с полем ManyToMany. Он исходил из законной базы данных с предопределенной схемой. Когда я создаю модельную модель для этой модели, она использует поле Multi select для отображения поля ManyToMany. Те, которые создали db, вместо этого выбирают поле select (not multi).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.
Использование выбора не позволит мне сохранить модель с помощью form.save()
, потому что он ожидает список значений. Будет ли это работать, если я «обходил» это, переопределив функцию сохранения моей модели, захватив MyModel2, выбранный в выбранном, и сохранит его вручную?
Я думаю, что 'form.MultipleChoiceField' будет работать так же, как хорошо. Он ожидает одно или несколько значений. Вы сможете использовать 'form.save()'. Но вы пытались? – xyres
Да, да. Я знаю, что это работает. Но я хочу, чтобы это выглядело как поле «Выбрать». Как презентация. – Apostolos
Если вы хотите сделать его похожим на поле «Выбрать», сделайте это - 'forms.MultipleChoiceField (widget = forms.Select)'. Это даст вам поле «Выбор», но вы не сможете выбрать несколько значений. – xyres