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__'

Для получения дополнительной информации здесь документация.

Вернуться на верх