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

jay*_*ayt 2 python django

在 Django 中,我@receiver用来保存一个CampaignProfile像这样命名的模型对象:

@receiver(post_save, sender=UserModel)
def save_campaign(sender, instance, created, **kwargs):
    if created:
        instance.CampaignProfile.save()
Run Code Online (Sandbox Code Playgroud)

我创建了一个名为的自定义用户模型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')
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试通过终端创建新的超级用户时,我收到了这样的错误...

AttributeError: 'RelatedManager' 对象没有属性 'save'

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

Ale*_*nov 5

没错——你不能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"
        )
Run Code Online (Sandbox Code Playgroud)