在Django中,我使用@receiver
来保存名为CampaignProfile
的模型对象,如下所示:
@receiver(post_save, sender=UserModel)
def save_campaign(sender, instance, created, **kwargs):
if created:
instance.CampaignProfile.save()
我已经创建了一个名为UserModel
的自定义用户模型,该模型需要与CampaignProfile
模型相关联,其中CampaignProfile看起来像这样......
class CampaignProfile(models.Model):
user = models.ForeignKey(UserModel, related_name='CampaignProfile', on_delete=models.CASCADE, null=True)
campaign_title = models.CharField(max_length=50, verbose_name='Title')
然而,当我尝试通过终端创建一个新的超级用户时,我得到一个错误,如此......
AttributeError:' RelatedManager'对象没有属性'保存'
有人知道为什么创建一个新的超级用户会出现这种错误吗? 感谢。
答案 0 :(得分:2)
这是正确的 - 您无法直接在模型上调用save()
- 您只能在对象实例上调用save()
。看起来您需要在创建用户后创建一些默认用户配置文件。试试这个:
@receiver(post_save, sender=UserModel)
def save_campaign(sender, instance, created, **kwargs):
if created:
CampaignProfile.objects.create(
user = instance,
title = "Profile default title"
)