Django UNIQUE约束失败:Site_coach.user_id(Django UNIQUE constraint failed: Site_coach.user_id)
我正在Python Django中开发一个网站。 我有一个Register.html模板,并带有一个“注册”功能。我希望我的用户在其他页面上注册后,将其他信息放在此页面上。 我的问题是,当我的用户第一次在我的表单中添加他们的附加信息时,如果我的用户想要从同一页面上的同一表单更新他们的信息,他们会收到错误“UNIQUE约束失败:Site_coach.user_id “我是一名初学者。 你能帮我解决这个错误吗?
我的view.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()
我的forms.py
from django import forms from .models import coach class RegisterForm(forms.ModelForm): class Meta: model = coach exclude = ('user','TestResult')
I'am developing a website in Python Django. I have a template Register.html with a function "Register" I would like that my users put their additional informations on this page after they registered on an another page. My problem is when my users put their additional informations for the first time in my form it work but then if my users want to update their informations from the same form on the same page, they receive an error "UNIQUE constraint failed: Site_coach.user_id" I'am a beginner. Can you help me to fix this error ?
My view.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})
My Site/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()
My users/models.py
from django.contrib.auth.models import AbstractUser, UserManager from django.db import models class CustomUserManager(UserManager): pass class CustomUser(AbstractUser): objects = CustomUserManager()
My forms.py
from django import forms from .models import coach class RegisterForm(forms.ModelForm): class Meta: model = coach exclude = ('user','TestResult')
原文:https://stackoverflow.com/questions/49353692