Ошибка «UNIQUE ограничение: ошибка auth_user.username» при регистрации пользователя с помощью формы django - PullRequest
0 голосов
/ 06 октября 2018

После регистрации пользователя через форму Django, я не могу увидеть этого пользователя в базе данных.Я использую базу данных Django по умолчанию Sqlite3, и я получаю к ней доступ через администратора Django.Когда я пытаюсь перерегистрировать уже существующего пользователя, он говорит: «Пользователь с таким именем уже существует, это означает, что записи сохраняются, но я не могу их увидеть.

Мой код:

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

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')

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)

волонтер.html (шаблон, имеющий форму)

<!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> 

ПРИМЕЧАНИЕ. Я не включил библиотеки начальной загрузки, jquery и ajax вприведенный выше HTML-код из-за проблем с форматированием. Я думаю, что они не имеют ничего общего с этой проблемой.

Я думаю, что проблема связана с моим views.py, models.py или forms.py или добровольцем.htmlили что-то еще. Пожалуйста, помогите мне. Я использую Django 1.9.

Заранее спасибо!

...