Задать вопрос
Ranc58
@Ranc58
Backend python developer

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

Всем привет!

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

5a831a5530c55082750183.png
  • Вопрос задан
  • 896 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Самый правильный путь - переопределить форму и выполнять в ней проверку необходимого условия:
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('Существует инстанс модели с некоторыми параметрами!')
        ...

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

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

Похожие вопросы