Как проверить (list_display / editable) поля формы Django, включая не отображаемые в списке поля в критериях проверки - PullRequest
0 голосов
/ 03 апреля 2019

В администраторе Django я пытаюсь проверить поле в форме (это поле доступно как поля list_display и list_editable), используя информацию в других не редактируемых списком полях.

Пока что я переопределил метод clean и выполнил проверку.Это прекрасно работает, когда я нахожусь в представлении Сведения о форме /admin/core/binddetails/48/, но в поле отображения списка, /admin/core/binddetails/ Это не работает, потому что некоторые поля в критериях проверки недоступны как list_editable поле

Я также изменил get_changelist_form(), как предложено https://stackoverflow.com/a/8964559/6638281

class BindDetails(models.Model):
    field1 = models.BooleanField()
    field2 = models.CharField(max_length=255)
    field5 = models.BooleanField()
class BindDetailsForm(forms.ModelForm):
    def clean(self):
        cleaned_data = super(BindDetailsForm, self).clean()
        field1 = cleaned_data['field1']
        field5 = cleaned_data['field5']
        if field1 and not field5:
            raise forms.ValidationError("'field1' cannot be enabled while 'field5' is turned off!")

class BindDetailsAdmin(admin.ModelAdmin):
    model = BindDetails
    form = BindDetailsForm

    list_display = ('field1', 'field2')
    list_editable = ('field1', 'field2')


    def get_changelist_form(self, request, **kwargs):
        return BindDetailsForm

Я бы хотел, чтобы, если field5 отключен, но черезна странице list_display, я пытаюсь включить field1, возникает ошибка проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...