保存到Djang时用ForeignKey自动创建对象

2024-05-21 04:30:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Django自动创建有问题物品。请帮助我。 我有一个模型化身

class Avatar(models.Model):
    owner = models.ForeignKey(User, related_name='avatar_owner')
    photoset = models.ForeignKey(PhotoSet, null=True)
    image = models.ImageField(max_length=1024, upload_to=avatar_file_path)

和模型

^{pr2}$

我想创建一个定义时,保存模型头像与空照片集,它将自动得到_或_创建一个具有特定标题的照片集。我做了一个这样的定义,但没用。在

@transaction.atomic
def create_default_photoset(self, *args, **kwargs):
    if self.photoset is None:
        self.photoset, _ = Photoset.objects.get_or_create(title=self.id)

    super(Avatar, self).create_default_photoset(*args, **kwargs)

我是不是搞错了这个定义?我该怎么解决呢?提前谢谢你!在


Tags: django模型selfdefault定义modelscreateargs
1条回答
网友
1楼 · 发布于 2024-05-21 04:30:20
def save(self, *args, **kwargs):
    if self.id is None:
        saved_image = self.image
        self.image = None
        super(Avatar, self).save(*args, **kwargs)
        self.image = saved_image
    if self.photoset is None:
        self.photoset, _ = Photoset.objects.get_or_create(title='test')
        super(Avatar, self).create_default_photoset(*args, **kwargs)

    super(Avatar, self).save(*args, **kwargs)

@Igor:这都是我的密码

相关问题 更多 >