Администратор django Взаимозависимая проверка наборов формPython

Программы на Python
Anonymous
Администратор django Взаимозависимая проверка наборов форм

Сообщение Anonymous »

у меня есть две встроенные строки в моделях администратора

Код: Выделить всё

class AdminModel(admin.ModelAdmin):
...
inlines = [inline1, inline2]
form = AdminModelForm
model =model

class inline1(admin.TabularInline):
form = inline1form
model = inline1model
class inline2(admin.TabularInline):
form = inline2form
model = inline2model

class inline1form(forms.ModelForm):
class Meta:
model = inline1Edge
fields = ("field1",)

class inline2form(forms.ModelForm):
class Meta:
model = inline2Edge
fields = ("field2",)

class AdminModelForm(forms.ModelForm):
....

admin.site.register(model, AdminModel)

теперь моя задача - проверить, есть ли в двух строках, если два поля имеют значение (одно в строке1, а другое в строке2), а затем показать ошибку
я пришел с решением, в котором при создании наборов форм я проверяю, имеет ли поле значение vlaue, а затем возвращаю ответ
т.е. модифицированный собственный метод `

Код: Выделить всё

class AdminModel(admin.ModelAdmin):
def _create_formsets(self, request, new_object, change):
formsets, inline_instances = super()._create_formsets(request, new_object, change)
if request.method == "POST":
location_formset = None
individual_formset_validated = all([formset.is_valid() for formset in formsets])

if not individual_formset_validated:
return individual_formset_validated

# custom check condition on formsets

if check_fail:
inline1formset.non_form_errors().extend(
["Please select values for only one field, field1 config or field2 config"]
)
return formsets, inline_instances

это работает нормально, и добавляется ошибка во встроенной строке.
есть ли какой-нибудь другой питонический способ, который может помочь мне решить эту задачу?

Подробнее здесь: https://stackoverflow.com/questions/789 ... f-formsets

Вернуться в «Python»