When I try to register a user using Django form, it gives me "UNIQUE constraint failed: auth_user.username". When I tried registering the first user, it worked, but I couldn't see that entry in my database. When I tried registering the second user, it's giving me this error. Please, help me through this. I have spent a considerable amount of time on this and I'm stuck.
-- This is my code:
forms.py
from django import formsfrom django.contrib.auth.models import Userfrom volunteer.models import UserProfileInfo
class UserForm(forms.ModelForm):
class Meta(): model = User fields = ('email','first_name','last_name')
views.py
from django.shortcuts import renderfrom volunteer.forms import UserForm
def register(request):
registered = False
if request.method =="POST" : user_form = UserForm(data=request.POST)
if user_form.is_valid():
user = user_form.save() user.save()
registered = True
else: print(user_form.errors)
else: user_form = UserForm()
return render(request, 'volunteer/volunteer.html', {'user_form':user_form, 'registered':registered})
models.py
from django.db import modelsfrom django.contrib.auth.models import User
class UserProfileInfo(models.Model):
user=models.OneToOneField(User)
def __str__(self): return self.user.first_name return self.user.last_name return self.user.email
urls.py
from django.conf.urls import url
from . import views
app_name = 'volunteer'
urlpatterns = [
url(r'^', views.register, name='register'),]
admin.py
from django.contrib import adminfrom volunteer.models import UserProfileInfo
# Register your models here.admin.site.register(UserProfileInfo)
volunteer.html file which has the user form
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"> <meta name="viewport" content = "width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script> </head> <body>
<div class="jumbotron"> {% if registered %} <h1>Thanks!</h1> {% else %} <h1>Register</h1>
<form method="post"> {% csrf_token %} {{ user_form.as_p }} <input type="submit" name="" value="Register">
{% endif %}
</div>
</form>
</body></html> I feel there's some problem in views.py or models.py, or volunteer.html. or maybe something else. Please, guide me through this.
Thanks in advance.
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/e74c61d0-db1f-48d3-ac35-f438752275ab%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment