Как опубликовать предварительно заполненное отключенное поле ModelMultipleChoiceField?
Мне нужно, чтобы мой ModelMultipleChoiceField
был заполнен параметрами запроса из GET-запроса (/?extending=1&extending2
). Я знаю из этого вопроса, что я могу определить get_initial()
метод для моего представления, возвращающий мой запрос. И все работает нормально, пока я не отключу ModelMultipleChoiceField
, так как мне не нужно, чтобы он был изменяемым.
Это мой ModelForm
класс, выведенный из этого ответа:
class ExtensionForm(forms.ModelForm):
class Meta:
model = Record
fields = ['extending', 'name', 'description', 'picture', 'content', 'files']
extending = forms.ModelMultipleChoiceField(queryset=Record.objects.all())
def __init__(self, *args, **kwargs):
if kwargs.get('instance'):
initial = kwargs.setdefault('initial', {})
initial['extending'] = [el.pk for el in kwargs['instance'].extending.all()]
forms.ModelForm.__init__(self, *args, **kwargs)
self.fields['extending'].disabled = True
def save(self, commit=True):
instance = forms.ModelForm.save(self, False)
old_save_m2m = self.save_m2m
def save_m2m():
old_save_m2m()
instance.extending.clear()
instance.extending.add(*self.cleaned_data['extending'])
self.save_m2m = save_m2m
if commit:
instance.save()
self.save_m2m()
return instance
Как мне обновить этот класс, чтобы мой запрос попал туда?