我遇到了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)
和模型
class PhotoSet(models.Model):
title = models.CharField(_('title'), max_length=200, null=True)
我想在使用null photoset保存模型Avatar时创建一个def,它会自动get_or_创建一个具有特定标题的Photoset。我做了这样的def,但是没有用。
@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)
我对这个def有误吗?我该如何解决这个问题?提前谢谢!
答案 0 :(得分:0)
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:这是我的全部代码