唯一约束失败:new\uu users\u profile.user\u id.Python Django
django.db.utils.IntegrityError唯一约束失败 sqlite3.IntegrityError:唯一约束失败:新建\u用户\u配置文件。用户\u id 上述异常是以下异常的直接原因: 新用户配置文件。用户id唯一约束失败:new\uu users\u profile.user\u id.Python Django,python,django,Python,Django,django.db.utils.IntegrityError唯一约束失败 sqlite3.IntegrityError:唯一约束失败:新建\u用户\u配置文件。用户\u id 上述异常是以下异常的直接原因: 新用户配置文件。用户id 当我尝试注册新用户、登录到现有用户以及尝试迁移时发生错误。我尝试删除所有迁移并再次迁移,但没有帮助 models.py from django.db import models from django.contrib.auth.models import User
当我尝试注册新用户、登录到现有用户以及尝试迁移时发生错误。我尝试删除所有迁移并再次迁移,但没有帮助 models.py
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
image = models.ImageField(default='default.jpg', upload_to='profile_pics')
def __str__(self):
return f'{self.user.username} Profile'
class Media(models.Model):
image_name = models.CharField(max_length=50)
image_description = models.CharField(max_length=80)
image_image = models.ImageField(upload_to='media', default='default.jpg')
观点
forms.py
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import *
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']
class MediaForm(forms.ModelForm):
class Meta:
model = Media
fields = ['image_name', 'image_description', 'image_image']
我想你需要
primary\u key=True,
class Profile(models.Model):
user = models.OneToOneField(User, primary_key=True, on_delete=models.CASCADE, null=True)
在类配置文件中,添加
primary_key=True
并删除null=True
user = models.OneToOneField(User,primary_key=True, on_delete=models.CASCADE)
我希望它能起作用 您的目标是创建引用同一
用户
对象的两个配置文件。OneToOneField
旨在防止出现这种情况。您可以使用UserRegisterForm
吗?我在帖子中添加了forms.py。您是否使用信号创建了相关的配置文件
对象?是的,我使用信号。加入一个职位
class Profile(models.Model):
user = models.OneToOneField(User, primary_key=True, on_delete=models.CASCADE, null=True)
user = models.OneToOneField(User,primary_key=True, on_delete=models.CASCADE)