gpt4 book ai didi

Django - 在用户创建时创建用户配置文件

转载 作者:行者123 更新时间:2023-12-03 12:10:29 24 4
gpt4 key购买 nike

我正在关注 Django 文档 here为了实现一个简单的目标:创建新用户后立即创建用户配置文件。

我有一个“帐户”应用程序,我的 accounts.models 如下所示:

# -*- coding: utf-8 -*-
from django.db import models
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from main.models import Store

class UserProfile(models.Model):

GENRE_CHOICES = (
('m', 'Masculino'),
('f', 'Feminino'),
)
MARITAL_STATUS_CHOICES = (
('s', 'Solteiro'),
('c', 'Casado'),
('d', 'Divorciado'),
('v', 'Viúvo'),
)

user = models.ForeignKey(User, unique=True)
birth_date = models.DateField()
genre = models.CharField(max_length=1, choices=GENRE_CHOICES)
address = models.CharField(max_length=150)
postal_code_4 = models.PositiveIntegerField()
postal_code_3 = models.PositiveIntegerField()
locatity = models.CharField(max_length=30)
marital_status = models.CharField(max_length=1, choices=MARITAL_STATUS_CHOICES)
child_amount = models.PositiveSmallIntegerField()
is_merchant = models.BooleanField(default=False)
store = models.ForeignKey(Store, null=True)

def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)

post_save.connect(create_user_profile, sender=User)

对我来说一切都很好,但是当我尝试添加一个新用户(使用 django admin)时,而不是拥有一个新创建的用户和用户配置文件,我收到以下错误:
/admin/auth/user/add/处的内部错误
当前事务被中止,命令被忽略直到事务块结束


这是回溯错误部分:
/djangoProjects/lwboanova/lwboanova/apps/accounts/models.py in create_user_profile

34: UserProfile.objects.create(user=instance)

这似乎是一个完整性错误,但我没有得到它的原因。

如果你们中的任何人能在这方面给我一些帮助,那就太好了。

最佳答案

你不应该使用:

user = models.ForeignKey(User, unique=True)

而是使用这个:
from django.conf import settings
..
user = models.OneToOneField(settings.AUTH_USER_MODEL)

关于Django - 在用户创建时创建用户配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11488974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com