Как переопределить метод сохранения в Django и вызвать правильные ошибки, которые будут обнаружены интерфейсом администратора? - PullRequest
2 голосов
/ 19 августа 2010

Я немного озадачен здесь, я не могу найти то, что я ищу в документах Django ...

То, что я хочу, - это возможность переопределить метод сохранения модели. Я хочу, чтобы он проверил определенный набор условий - если эти условия будут выполнены, он просто отлично создаст объект, но если условия не будут выполнены, я хочу вызвать ошибку. Главное, что я использую интерфейс администратора для большинства из них, так что я не ошибаюсь, что поймаю себя - это ошибка, мне нужен интерфейс администратора, чтобы поймать и отобразить пользователю. *

Как я могу сделать это парни? Есть ли документация, которую я пропускаю при чтении? О, также следует отметить, что я использую Django 1.1, и поэтому не могу переопределить методы clean / full_clean, представленные в Django 1.2.

Спасибо! Шон

Ответы [ 2 ]

1 голос
/ 19 августа 2010

Я не уверен на 100%, но я думаю, что вы должны иметь возможность вызвать либо ValueError, либо django.forms.ValidationError в вашем методе save () в вашей модели

def save(self):
    if yourvalidation:
        super(Model, self).save() #call super to actually do save
    else:
        raise #either ValueError or ValidationException

Опять же,я не уверен, что это будет работать в 1.1 ... но это то, что я бы попробовал.

1 голос
/ 19 августа 2010

Я хочу ... проверить определенный набор условий - если эти условия будут выполнены, объект будет просто отлично создан, но если условия не будут выполнены, я хочу вызвать ошибку.

Для этого предназначен ModelForm.

http://docs.djangoproject.com/en/dev/topics/forms/modelforms/

...