Форум сайта python.su
Здравствуйте!
Пишу для своего сайта регистрацию (да, я знаю что есть хорошая django-account, но хочется написать самому, чтобы разобраться), и вот при написании, нашел странность. Имеются такие модели:
#-*-coding:utf8-*-
from django.contrib.auth.models import User
from django.db import models
class ClientProfile(models.Model):
DAY_CHOICES = (
('Mo', u'Понедельник'),
('Tu', u'Вторник'),
('We', u'Среда'),
('Th', u'Четверг'),
('Fr', u'Пятница'),
('Sa', u'Суббота'),
('Su', u'Воскресенье'),
)
user = models.ForeignKey(User, unique=True)
urid_address = models.CharField(max_length=400, verbose_name=u"Юр.адрес:", null=True)
reg_address = models.CharField(max_length=400, verbose_name=u"Адрес регистрации:", null=True)
fact_address = models.CharField(max_length=400, verbose_name=u"Фактический адрес:", null=True)
time_work = models.TextField(max_length=400, verbose_name=u"Время работы:", null=True)
visit_day = models.CharField(max_length=2, verbose_name=u"День посещения:",
choices=DAY_CHOICES, null=True)
phone_number = models.IntegerField(max_length=16, verbose_name=u"Тел.номер:", null=True)
contact_face = models.CharField(max_length=64, verbose_name=u"Контактное лицо:", null=True)
is_trade = models.BooleanField(default=False)
#-*-coding:utf8-*-
from django import forms
from django.contrib.auth.forms import UserCreationForm
from accounts.models import ClientProfile
from django.contrib.auth.models import User
class ClientForm(forms.ModelForm):
class Meta:
model = ClientProfile
exclude = ('user', 'is_trade')
class UserForm(UserCreationForm):
email = forms.EmailField()
def save(self, commit=True):
user = super(UserForm, self).save(commit=False)
user.set_password(self.cleaned_data["password1"])
user.email = self.cleaned_data['email']
if commit:
user.save()
return user
#-*-coding:utf8-*-
from libs.decorators import render_to
from accounts.models import ClientProfile
from accounts.forms import ClientForm, UserForm
from django.contrib.auth.models import User
from django.shortcuts import render_to_response
def reg_user(request):
"""This is view for registration user in database"""
if request.user.is_anonymous():
if request.method == 'POST':
form1 = UserForm(request.POST)
form2 = ClientForm(request.POST)
if form1.is_valid() and form2.is_valid():
user = form1.save()
form2.user = user
form2.save()
return render_to_response('accounts/welcome.html')
else:
form1 = UserForm()
form2 = ClientForm()
return render_to_response('accounts/registration.html',
{'form1':form1, 'form2':form2})
return render_to_response('accounts/login_success.html', {})
Отредактировано (Дек. 10, 2008 00:54:12)
Офлайн
aliensА form2 не знает откуда ей брать юзера для поля user создаваемого профиля.
Подскажите, что может это быть?
user = form1.save()
profile = form2.save(False)
profile.user = user
profile.save()
Офлайн
DaevaornСпасибо! помоглоaliensА form2 не знает откуда ей брать юзера для поля user создаваемого профиля.
Подскажите, что может это быть?user = form1.save()
profile = form2.save(False)
profile.user = user
profile.save()
Офлайн