Регистрация UserProfile стирает все строки - PullRequest
0 голосов
/ 19 октября 2011

Я создал представление регистрации пользователя, и вот оно:

def register(request):
if request.method == 'POST':
    data = request.POST.copy() # so we can manipulate data  
    # random username
    data['username'] = hashlib.md5( data['email'] ).hexdigest()
    data['username'] = data['username'][0:30]
    #data['username'] = ''.join([choice(letters) for i in xrange(30)])
    form = RegisterForm(data)   
    if form.is_valid():
        new_user = form.save()
        #UserProfile.objects.create(user=new_user)
        return HttpResponse("Thanks for Registering")       
else:
    form = RegisterForm()

return render_to_response("CTUser/register.html", { 'form': form, })

Когда я раскомментировал строку UserProfile:

#UserProfile.objects.create(user=new_user)

, адрес электронной почты и пароль сохраняются правильно, но когдаЭто там, вся информация стерта.Я что-то здесь не так делаю?

вот класс пользователя:

class UserProfile(User):
user = models.OneToOneField(User)
#user = models.ForeignKey(User, unique=True)

#profile sub URL
pagelink = models.CharField(max_length=40)

#one or many albums
albums = models.ManyToManyField(Album)

ОБНОВЛЕНИЕ (19.10.11): вот форма регистрации:

class RegisterForm(UserCreationForm):   
email = forms.EmailField(label = "Email Address", max_length=75)  

class Meta:
    model = User
    #exclude = ['username',]
    fields = ("username", "email")  

def clean_email(self):
    email = self.cleaned_data["email"]
    try:
        user = User.objects.get(email=email)
        raise forms.ValidationError("This email address already exists. Did you forget your password?")
    except User.DoesNotExist:
        return email

def save(self, commit=True):
    user = super(UserCreationForm, self).save(commit=False)
    user.set_password(self.cleaned_data["password1"])
    user.email = self.cleaned_data["email"]
    user.is_active = True # change to false if using email activation
    if commit:
        user.save()
    return user

1 Ответ

0 голосов
/ 19 октября 2011

Проверьте, содержит ли new_user все данные, которые вы хотите сохранить. Вставьте код RegisterForm.

EDIT

попробуйте изменить:

user = super(UserCreationForm, self).save(commit=False)

в

user = super(RegisterForm, self).save(commit=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...