Итак, вы сохраняете данные дважды. И в вашем определении модели имя пользователя должно быть уникальным. Итак, выкидываем ошибку целостности. Вы сохраняете данные в
1.) Forms save
2.) again same data you are saving in Views.
Мое предложение.
clean your data in the forms.
Remove save() from forms.
save form in views.
class RegisterForm(ModelForm):
"""This form lets people register as members."""
help_string = "Please choose a password that is at 6 characters long,"\
"and contains at least on speacial character or number"
First_Name = forms.CharField(max_length=50)
Last_Name = forms.CharField(max_length=50)
Username = forms.CharField(max_length=50)
Password = forms.CharField(max_length=50)
Confirm_Password = forms.CharField(max_length=50)
Email_Address = forms.EmailField()
Address = forms.CharField(widget=forms.Textarea)
def clean_name(self,):
username = self.cleaned_data['Username']
return username
def clean_email(self,):
email = self.cleaned_data['Email_Address']
param = {'email': email}
if dbapi.get_user(**param):
raise ValidationError('Email already registered')
return email
def clean_password(self,):
// your logic here
В просмотрах.
Не похож на ваш код
Здесь все значения являются фиктивными. Вы просто подходите в соответствии со своими значениями
имя_регистра должно быть экземпляром вашей формы
username = register_form.cleaned_data['username']
email = register_form.cleaned_data['email']
password = register_form.cleaned_data['password']
name = register_form.cleaned_data['name']
# Create a user obj
user_obj = create_user(username, email, password) // to create a user_obj
# https://docs.djangoproject.com/en/dev/topics/auth/#creating-users
user_obj.first_name = 'xxxxxxxxx'
user_obj.last_name = 'xxxxxxxxxx'
user_obj.save()
Ok. Я пишу здесь create_user
метод:
from django.contrib.auth.models import User
def create_user(username, email, password):
# This will return the user_obj
return User.objects.create_user(username, email, password)