Tuesday, June 4, 2019

Re: While registering the user with django form, it gives "UNIQUE constraint failed: auth_user.username" error

Consider we want another attribute in user model other than what is already available, for example height or weight. Still this code is giving error and focus should be to solve the issue that OP is facing. I am also facing same issue and trying to figure it out.
@Jaydeep Did you get to solve the issue somehow?

Thanks!

On Saturday, 18 May 2019 04:01:56 UTC+5:30, Joe Reitman wrote:
I'm not sure what your objective is but you don't need to create another model to store user data. User data is stored in the auth.models. It has fields already available for what your trying to accomplish. 

On Saturday, October 6, 2018 at 8:28:09 AM UTC-5, Jaydeep Borkar wrote:
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">

 
 
</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/9c4d4774-96ca-4c03-b63c-963628303544%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment