Джанго одна форма несколько таблиц - PullRequest
3 голосов
/ 17 апреля 2011

Форма собирает имя, адрес электронной почты, пароль и оценку.

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

 def save(self):
    new_user = User.objects.create_user(first=self.cleaned_data['first'], email=self.cleaned_data['email'], password=self.cleaned_data['password'])
    new_grade = Grade.objects.create_grade(grade=self.cleaned_data['grade'])
    return new_user, new_grade

Возможно ли это? Что было бы лучшим способом сделать это?

Ответы [ 2 ]

4 голосов
/ 17 апреля 2011

Совершенно возможно и нормально делать такие вещи. Форма не должна напоминать модель только потому, что это делают ModelForms. Формы - это просто способ описания входных данных, необходимых для конкретного случая использования. Что вы делаете с этими данными, полностью зависит от вас. Это включает в себя сохранение его на нескольких различных моделях.

Обратите внимание, что не требуется возвращать новые экземпляры, которые вы создали, в обычной форме. Это просто соглашение. Если вам нужен доступ к новым экземплярам после сохранения, обязательно верните их.

0 голосов
/ 17 апреля 2011

лучше кодировать как:

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