过去几天似乎运行良好,但是由于添加了跟踪功能,因此配置文件在注册时不会创建。我通读了其他类似问题,然后看到了有关使用@reciever的信息,我们是否必须使用接收器?我遵循了有关如何在注册时允许创建个人资料的教程,其内容如下(我有一个函数,忘记了哪个应该做同样的事情)
# Wasn't commented out
User.profile = property(lambda u: CustomUserProfile.objects.get_or_create(user=u)[0])
# Wasn't commented out
def post_save_user_model_receiver(sender, instance, created, *args, **kwargs):
if created:
try:
Profile.objects.create(user=instance)
except:
pass
# I had this saved( commented out ), are any of these correct?
def create_user_profile(sender, instance, created, **kwargs):
if not created:
CustomUserProfile.objects.create(user=instance)
它在我的models.py中,但不在函数或配置文件类中,是我的错误,还是我们真的必须使用接收器?原谅我,我一直在通过教程和文档自学,但是不推荐使用许多教程(我不知道),所以我自己一个人走了,现在我为此感到遗憾。
答案 0 :(得分:0)
我通过删除数据库,所有 pycaches 和迁移(init.py除外)并按照本教程https://simpleisbetterthancomplex.com/tutorial/2016/07/28/how-to-create-django-signals.html
来解决此问题由于某种原因,我不得不运行python3 manage.py makemigrations profs
然后进行迁移以制作表。不知道为什么,但是到目前为止似乎还行。