' RelatedManager'对象没有属性' save' - Django

时间:2017-03-20 01:14:13

标签: python django

在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'对象没有属性'保存'

有人知道为什么创建一个新的超级用户会出现这种错误吗? 感谢。

1 个答案:

答案 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"
        )