当我尝试在 django 中使用 admin 或通过我的注册功能在视图中创建用户时,它给了我这个错误:
通过注册功能:
IntegrityError at /register_user/
null value in column "wins" violates not-null constraint
DETAIL: Failing row contains (3, pbkdf2_sha256$36000$3SoR8l6dEXRD$CkFB+RRKeJPUPeux4EByqkYFkGLgkhI..., null, f, Ion, , , [email protected], f, t, 2017-05-08 10:47:39.860612+00, f, null).
通过在管理员中添加用户
IntegrityError at /admin/football_app/customuser/add/
null value in column "wins" violates not-null constraint
DETAIL: Failing row contains (7, pbkdf2_sha256$36000$o6UGPqAw72hi$qfbgoRAoJn4WmlK010VbfCzeu3+Fo0w..., null, f, Ion, , , , f, t, 2017-05-08 11:02:54.725688+00, f, null).
模型.py
class CustomUser(AbstractUser):
selected = models.BooleanField(default=False)
wins = models.IntegerField()
REQUIRED_FIELDS = ['email', 'selected', 'wins']
def __str__(self):
return self.username
class Score(models.Model):
VALUE = (
(1, "Score 1"),
(2, "Score 2"),
(3, "Score 3"),
(4, "Score 4"),
(5, "Score 5"),
(6, "Score 6"),
(7, "Score 7"),
(8, "Score 8"),
(9, "Score 9"),
(10, "Score 10"),
)
granted_by = models.ForeignKey(settings.AUTH_USER_MODEL, default=0)
granted_to = models.ForeignKey(settings.AUTH_USER_MODEL, default=0, related_name='granted_to')
grade = models.PositiveSmallIntegerField(default=0, choices=VALUE)
def __str__(self):
return str(self.granted_to)
视图.py
def register_user(request):
data = dict()
if request.method == 'POST':
form = UserForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
user.set_password(user.password)
user.save()
return redirect('/login/')
else:
data['form'] = UserForm()
return render(request, 'register_user.html', data)
我正在使用 wins 字段将 +1 添加到用户,并且我正在视图中的其他函数中执行此操作:
User.objects.filter(username__in=data['d1']).update(wins=F('wins') + 1)
您应该为该wins
字段设置默认值,以便为新用户自动设置为 0。
wins = models.IntegerField(default=0)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句