1

Здравствуйте, я сейчас работаю над проектом django, в одной из моих моделей у меня есть загрузка файлов и загрузка изображений, причем параметры этих двух полей равны пустому = True, однако есть оговорка с этим, и именно это поле может быть пустым только в том случае, если одно из них не является таким, например, если поле изображения заполнено, то пользователю не нужно загружать файл, и если полное поле файла то пользователю не нужно загружать изображение.Модель Python/Django переопределяет очищенные данные

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

+1

завершено ... как? –

+0

завершено. I. Есть запись в POST – Udders

ответ

4

Вам просто нужно определить собственный метод clean() в ModelForm, который проверяет, заполнено ли одно или оба поля.

def clean(self): 
    file_field = self.cleaned_data.get('file_field') 
    image_field = self.cleaned_data.get('image_field') 

    if file_field and image_field: 
     raise forms.ValidationError("You should only provide one of File or Image") 
    elif not file_field and not image_field: 
     raise forms.ValidationError("You must provide either File or Image") 

    return self.cleaned_data 
+0

Спасибо, хотя я думаю, что я пропустил, что и файл, и изображение могут быть загружены вместе, я предполагаю, что это изменит какое-то условие? – Udders

+0

Конечно, тогда просто отбросьте первый 'if'. –

Смежные вопросы