在 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'
有谁知道为什么创建一个新的超级用户会出现这种错误?谢谢。
没错——你不能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)
| 归档时间: |
|
| 查看次数: |
1029 次 |
| 最近记录: |