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 django-users+unsubscr...@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.

Reply via email to