django - 异常值:NOT NULL 约束失败:auth_user.username
问题描述
我正在创建一个项目来使用 Django 注册和查看个人资料。
问题是当我尝试注册新用户时出现一些错误
NOT NULL 约束失败:auth_user.username
这是我的 form.py 和 view.py 文件:
表格.py
from django.contrib.auth.models import User
from django import forms
from django.contrib.auth.forms import UserCreationForm,UserChangeForm
class FileDataForm(forms.Form):
name = forms.CharField(max_length=50)
file = forms.FileField()
image = forms.ImageField()
class userregister(UserCreationForm):
first_name = forms.CharField(max_length=50, required = False ,help_text ='optional')
last_name = forms.CharField(max_length=50, required = False ,help_text ='optional')
email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')
class Meta:
model = User
fields = ('first_name', 'last_name', 'email', 'password1', 'password2', )
class editprofileform(UserChangeForm):
class Meta:
model = User
fields = ('first_name', 'last_name', 'email','password')
查看.py:
from django.shortcuts import render
from django.http import HttpResponse
from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import render,redirect,render_to_response
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import View
from .models import FileData
from .forms import FileDataForm
from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required
from .forms import userregister,editprofileform
from django.contrib.auth.forms import UserChangeForm , PasswordChangeForm
from django.contrib.auth import update_session_auth_hash
# Create your views here.
@login_required
def home(request):
return HttpResponse('<h1>Welcome to your first page<h1>')
def registration(request):
print request
print 'request'
if request.method == 'POST':
#save the user data
form = userregister(request.POST)
print form.errors
print 'here'
if form.is_valid():
print 'i am here'
form.save()
return render(request , 'registration/success.html' ,{'form' : form,} )
else:
form = userregister()
return render(request , 'registration/register.html' ,{'form' : form,} )
else:
form = userregister()
return render(request , 'registration/register.html' , {'form': form,})
模型.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
# Create your models here.
class UserProfile(models.Model):
user = models.OneToOneField(User)
description = models.CharField(max_length = 100,default='')
city = models.CharField(max_length =30)
mobile = models.IntegerField(default=0)
def create_profile(sender , **kwargs):
if kwargs['created']:
user_profile = UserProfile.objects.create(user = kwargs['instance'])
post_save.connect(create_profile , sender=User)
错误:
异常值:
NOT NULL 约束失败:auth_user.username
解决方案
在您的 form.py 文件中,尝试插入“用户名”作为“字段”列表中的第一个元素。看起来您没有在表单中使用它,所以当您提交时,它会将用户名留空。
推荐阅读
- javascript - 如何在不提供凭据的情况下在浏览器中使用 Kinesis Video Stream WebRTC SDK?
- c# - 如何从 CSV 文件流中删除标题
- typescript - 10秒间隔的查找速度
- linux - 如何在多字符字符串的 linux 中使用“cut”命令
- javascript - 在 Angular HTML 中显示后端响应
- azure - Azure SignalR withAutomaticReconnect()“错误:连接因错误而断开”...在 Angular8 和 Asp.Net Core 3.1 上
- c# - 不可为空的默认返回空警告
- c# - 如何在 C# 控制台中使链接可点击
- python - 在python中有效地找到方程的根
- python - 如何使 tweepy 与 if/else 语句一起工作?