Django - Можно ли использовать для поля modelform значение, отличное от pk?
У меня есть модель формы, и я отправляю форму через AJAX. Одно из полей является полем manytomany и я отображаю его в виде чекбоксов. По умолчанию django использует PKs моделей в передаваемом queryset. Есть ли способ использовать другое поле модели в качестве значения вместо значений PK. (У меня PK как целое число - не просто так. У меня также есть поле UUID, которое не является PK. Я хочу использовать его для значений.)
В вашей форме модели явно определите поле uuid и передайте дополнительный аргумент to_field_name="uuid_field"
, чтобы при рендеринге вашей формы option
входы html select отображались как:
<option value="obj.uuid_field">Model Instance</option>
Пример формы модели:
class YourModelForm(forms.ModelForm):
uuid_field = forms.ModelChoicefield(
queryset=Model.objects.all(),
to_field_name="uuid_field"
)
class Meta:
model = YourModel
fields = '__all__'
Для получения дополнительной информации здесь документация.