Пропустить УДАЛИТЬ строки в проверке - PullRequest
0 голосов
/ 13 марта 2012

У меня проблема с пользовательским набором inlineform.Я хочу, чтобы проверка пропускала строки, которые имеют delete checked.

class TravelsRelationsForm(ModelForm):
def __init__(self, *args, **kwargs):
    super(TravelsRelationsForm, self).__init__(*args, **kwargs)
    if kwargs.has_key('instance'):
        instance = kwargs['instance']
    else:
        try:
            self.initial['title']
        except:
            self.initial[DELETION_FIELD_NAME] = True

# Force update of child
def has_changed(self, *args, **kwargs):
    return True

def clean(self):
    cleaned_data = self.cleaned_data
    count = 0
    for form in self.forms:
        try:
            if not form.cleaned_data['DELETE']:
                count += 1
        except AttributeError:
            pass
    if count < 1:
        raise forms.ValidationError('You must have at least one title')

    return cleaned_data

В то же время я не хочу применять хотя бы одну строку.Это не работает, потому что TravelsRelationsForm' object has no attribute 'forms'.

Спасибо!

1 Ответ

0 голосов
/ 13 марта 2012

Это нормально, что вы видите эту ошибку. У вас есть встроенная логика в форме модели. Вы можете заменить метод modelform clean () на метод full_clean ():

def full_clean(self):
    if self.data.get('DELETE', False):
        # skip validation for form that has DELETE
        return

    # go through the normal validation process otherwise
    return super(TravelsRelationsForm, self).full_clean()

И такая проверка формы:

raise forms.ValidationError('You must have at least one title')

Может быть сделано непосредственно в представлении.

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