Django Models, ModelForm и валидация - PullRequest
0 голосов
/ 10 марта 2011

Для следующей модели:

#models.py
class entry(models.Model):
    title = models.CharField(max_length=25)
    image = models.ImageField(upload_to="/",blank=True)
    video_url = models.CharField(max_length=150,blank=True)

Я хочу, чтобы модель и соответствующая ModelForm были разрешены только либо , либо image поле или video_url поле, но не оба.

Как это лучше всего сделать? Нужно ли проверять модель, форму модели или и то, и другое?

1 Ответ

0 голосов
/ 10 марта 2011

в вашей форме вы можете использовать:

def clean(self):
    cleaned_data = self.cleaned_data
    m_image = cleaned_data.get('imagee')
    m_video_url = cleaned_data.get('video_url')

    if (m_image and m_video_url): 
        raise forms.ValidationError("Both video url and image sumbitted")

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