У меня есть модель MyModel, которая содержит PK - locid, то есть AutoField.
Я хочу построить модельный набор форм с некоторыми оговорками:
- Набор запросов для набора форм должен быть пользовательским (скажем, order_by ('field')), а не all ()
- Поскольку locid для MyModel является автоматическим полем и поэтому скрыт по умолчанию, я хочу показать его пользователю.
Я не уверен, как это сделать. Я пробовал несколько подходов,
MyModelFormSet = modelformset_factory(MyModel, fields=('locid', 'name', 'dupof'))
Выше приведены три поля, но locid скрыт.
class MyModelForm(ModelForm):
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
self.fields['locid'].widget.attrs["type"] = 'visible'
locid = forms.IntegerField(min_value = 1, required=True)
class Meta:
model = MyModel
fields = ('locid', 'name', 'dupof')
Выше приведено сообщение об ошибке ManyToMany.
Кто-нибудь делал что-то подобное раньше?
Редактировать 2
Теперь я могу использовать пользовательский запрос при создании экземпляра набора форм, но мне все еще нужно показать поле locid пользователю, потому что идентификатор важен для использования приложения. Как бы я это сделал? Есть ли способ переопределить поведение по умолчанию для сокрытия ПК, если оно является автополем?