【发布时间】:2018-03-18 22:59:47
【问题描述】:
我正在用 Python Django 开发一个网站。我有一个带有“注册”功能的模板 Register.html 我希望我的用户在另一个页面上注册后将他们的附加信息放在这个页面上。 我的问题是,当我的用户第一次在我的表单中输入他们的附加信息时,它可以工作,但是如果我的用户想从同一页面上的同一表单更新他们的信息,他们会收到错误“唯一约束失败:Site_coach.user_id " 我是初学者。你能帮我解决这个错误吗?
我的观点.py
from django.shortcuts import render
from .forms import RegisterForm
def Register(request):
form = RegisterForm(request.POST or None, request.FILES)
if form.is_valid():
obj = form.save(commit=False)
obj.user = request.user
form.save()
return render(request, 'Register.html', {'form': form})
我的网站/models.py
class coach(models.Model):
user = models.OneToOneField(CustomUser,on_delete=models.CASCADE)
Telephone = models.IntegerField()
TestResult = models.IntegerField(null=True, blank=True)
Level = models.TextField()
我的用户/models.py
from django.contrib.auth.models import AbstractUser, UserManager
from django.db import models
class CustomUserManager(UserManager):
pass
class CustomUser(AbstractUser):
objects = CustomUserManager()
我的表单.py
from django import forms
from .models import coach
class RegisterForm(forms.ModelForm):
class Meta:
model = coach
exclude = ('user','TestResult')
【问题讨论】:
标签: python django django-forms django-views unique-constraint