사용자 모델을 확장하기 위해 사용자에게 OneToOne 관계가있는 클라이언트 모델이 있습니다. 사용자 (사용자 필드와 클라이언트 필드를 모두 포함하는 양식)를 등록 할 수 있어야하며 장고 등록을 사용했습니다. RegistrationForm 구현하지 않기 때문에,Django 등록 : 사용자 서식을 저장하는 것이 왜 어려운가요? 내 간단한 해결책은 괜찮습니까?
from registration.forms import RegistrationForm
class UserForm(RegistrationForm):
def save(self):
new_user = User.objects.create_user(
username=self.cleaned_data['username'],
email = self.cleaned_data['email'],
password=self.cleaned_data['password1'])
new_user.backend='django.contrib.auth.backends.ModelBackend'
new_user.save()
return new_user
class ClientForm(forms.ModelForm):
class Meta:
model = Client
exclude = ['user']
내가 정의 폼에 대한 저장() 메소드를 구현 : 여기
def register_client(request):
if request.method == 'POST':
userform = UserForm(request.POST, prefix='user')
clientform = ClientForm(request.POST, prefix='client')
if userform.is_valid() and clientform.is_valid():
user = userform.save()
client = clientform.save(commit=False)
client.user = user
client.save()
login(request, user)
return HttpResponseRedirect('/webapp/')
else:
return HttpResponse('error!')
else:
userform = UserForm(prefix='user')
clientform = ClientForm(prefix='client')
t = loader.get_template('register.html')
c = RequestContext(request, {
'userform':userform,
'clientform':clientform,
})
return HttpResponse(t.render(c))
그리고 내 양식됩니다 여기에 내가 발견 된 일부 조각에 따라 등록을위한 뷰입니다 하나는 전형적인 형태와 같습니다.
양식을 저장하기 위해 일부 백엔드 구현에 어려움을 겪어야하는 이유는 무엇입니까? 간단한 방법으로 문제가 있습니까? 그것은 효과가있다.
왜 당신은 사용자 모델을 저장해야합니까
감사합니다. 지금 당장은 내 솔루션을 사용하게 될 것입니다. 클라이언트 필드가 장부 등록을 사용하여 쉽게 등록 양식을 얻지 못했기 때문입니다. 프로필의 문제는 사용자에게 적어도 2 개의 다른 프로필이 필요하다는 것입니다. – jpimentel