Лучшим способом было бы создать в приложении, где у вас есть Organization файл (скажем, "forms.py"), и сделать это:
from registration.forms import RegistrationForm
from forms import *
from models import Organization
class RegistrationFormWithOrganization(RegistrationForm):
organization_logo = field.ImageField()
organization_name = field.CharField()
def save(self, profile_callback = None):
Organization.objects.get_or_create(user = self.cleaned_data['user'],
logo = self.cleaned_data['organization_logo'],
name = self.cleaned_data['organization_name'])
super(RegistrationFormWithOrganization, self).save(self, profile_callback)
А затем в ваших базовых URL переопределите существующий URL для регистрации и добавьте эту форму в качестве используемой формы:
form organization.forms import RegistrationFormWithOrganization
url('^/registration/register$', 'registration.views.register',
{'form_class': RegistrationFormWithOrganization}),
url('^/registration/', include('registration.urls')),
Помните, что Django будет использовать первый URL, соответствующий регулярному выражению, поэтому будет соответствовать вашему звонку, а не регистрации django. Он также скажет регистрации использовать вашу форму, а не свою собственную. Я пропустил много проверок здесь (и, возможно, вывод пользовательского объекта ... если это так, перейдите к исходному коду регистрации и посмотрите, откуда он), но это определенно правильный путь несколько вещей на странице с минимальными усилиями с вашей стороны.