我使用名为UserExtension
. 它通过唯一的 ForeignKey 关系与 User 相关联,这使我能够在管理员中以内联形式对其进行编辑!我正在使用信号为每个新用户创建一个新的配置文件:
def create_user_profile(sender, instance, created, **kwargs):
if created:
try:
profile, created = UserExtension.objects.get_or_create(user=instance)
except:
pass
post_save.connect(create_user_profile, sender=User)
(如这里所述,例如:Extended the User model with custom fields in Django)问题是,如果我通过管理员创建一个新用户,我会在保存“列 user_id 不是唯一的”时收到一个 IntegritiyError。信号似乎没有被调用两次,但我猜管理员正试图在之后保存配置文件?但是如果我在系统的其他部分创建一个新用户,我需要通过信号创建!