【发布时间】:2026-02-03 07:20:03
【问题描述】:
我阅读了部分文档和一些文章,但我的代码不起作用。
OBS:我正在使用通过 AbstractUser 创建的自定义用户,但我没有添加额外的字段
看看这个例子
profile.signals.py:
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth import get_user_model
from .models import Profile
User = get_user_model()
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
现在,查看用户创建:
>>> from accounts.models import User
>>> me = User.objects.create(username='myusr', email='me@email.com', password='me123456')
>>> me
<User: myusr>
>>> me.save()
>>> me.profile
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/mnt/sda4/Development/coding/Projects/codesv3/env/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 415, in__get__
self.related.get_accessor_name()
accounts.models.User.profile.RelatedObjectDoesNotExist: User has no profile.
我不知道怎么了。也因为我之前没用过,对 SQL 触发器一无所知
【问题讨论】:
-
你在设置中添加了AUTH_USER_MODEL吗?
标签: django