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 forms
from django.contrib.auth.models import User
from volunteer.models import UserProfileInfo

class UserForm(forms.ModelForm):

    class Meta():
        model = User
        fields = ('email','first_name','last_name')




views.py 
from django.shortcuts import render
from 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 models
from 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 admin
from 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 [email protected].
To post to this group, send email to [email protected].
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.

Reply via email to