Ranc58
@Ranc58
Python developer

Как вызвать в django admin «Field is required»?

Всем привет!

Как в django admin вызвать cитуацию, аналогичную тому, когда в админке мы пытаемся сохранить инстанс без заполнения поля, которое обязательно?

5a831a5530c55082750183.png
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
TheDeadOne
@TheDeadOne
Седой и строгий
Самый правильный путь - переопределить форму и выполнять в ней проверку необходимого условия:
class SomeForm(forms.ModelForm):
    class Meta:
        model = SomeModel
        fields = ['some_field', 'another_field', 'one_more_field']

    def clean(self):
        if проверка условия:
            raise forms.ValidationError('Существует инстанс модели с некоторыми параметрами!')


class SomeInline(admin.TabularInline):
    model = Book
    form = SomeForm

Либо можно выполнить эту же операцию в ModelAdmin.save_formset():
class AnotherModel(admin.ModelAdmin):
    ...

    def save_formset(self, request, form, formset, change):
        instances = formset.save(commit=False)
        for instance in instances:
            if  проверка условия:
                raise forms.ValidationError('Существует инстанс модели с некоторыми параметрами!')
        ...

Но не рекомендуется.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
20 авг. 2018, в 21:21
30000 руб./за проект
20 авг. 2018, в 20:46
5000 руб./за проект
20 авг. 2018, в 20:38
700 руб./в час