0

Я хочу добавить еще одно поле в UserCreationForm, которое будет отображаться в RegistrationForm, для этой цели я увидел несколько примеров для stackoverflow. Я имею в виду примеры, определяя различный RegisterForm унаследованный от UserCreationForm, как описано в этом вопросе StackOverflow: django-create-custom-usercreationform-basicНужно ли переопределять метод сохранения для добавления данных в разные модели из django UserCreationForm

Но что я буду делать, если мои данные принадлежит к 2 или 3 различных моделей, включая User модель? Могу ли я переопределить метод сохранения или сделать что-то еще? Есть ли способ справиться с этим, не перейдя на более низкий уровень, просто обработав его в RegistrationForm, который будет унаследован от UserCreationForm? Что лучше?

+0

проверить это [ссылка] (http://dmitko.ru/django-registration-form-custom-field/) – seb

+0

@seb, так что это похоже на 2 раза унаследовано от userCreationForm или как написание собственной функции сохранения – Hafiz

+0

Не получишь точно, потому что вы используете имена, как если бы они были обычными или обычными. Приведите пример или объясните это лучше. – seb

ответ

0

Хорошо, как вы видите в link, есть много подходов, которые вы можете использовать, ни один из них не выглядит таким высоким уровнем, как вы хотите. Я не знаю, насколько вы знакомы с Django, но связанная оценка выглядит очень многообещающей. Он свежий, использует структуру сигналов (гибкий) и очень прост в реализации - достаточно высокий уровень для вашей проблемы. Следите за UserProfile Example, потому что они очень похожи на вашу проблему и более обычны.

Если вы не хотите идти с сигналами, самым прямым решением было бы переопределить метод сохранения.

Итак, у вас уже есть решения. Imho, я не могу найти лучшего или более высокого уровня.

+0

Если я использую это похоже на http://stackoverflow.com/questions/5745197/django-create-custom-usercreationform-basic, тогда я буду использовать класс 'RegistrationForm' или' UserCreationForm' в функции регистрации моего представления? – Hafiz

+0

Вы должны использовать, конечно, свой специализированный класс, посмотрите, как работает [OOP] (http://en.wikipedia.org/wiki/Object-oriented_programming). Это означает, что вам нужно использовать RegistrationForm. – seb

+0

ОК спасибо, я понимаю ООП, но просто смутился из-за новой среды. – Hafiz