Django:如何从vi保存多对多字段

2024-09-29 23:24:59 发布

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

我有一个使用以下save方法的模型

def save(self, *args, **kwargs):
    self.url = slugify(self.name)

    # Saving creative if object is saved first time
    if self.reloadImages is True:
        print "Reload IMages"
        for img in self.creative_url.split("\n"):
            content = urllib2.urlopen(img).read()
            extra_image = ExtraImage()
            extra_image.img.save("%s.jpg" %(self.name), ContentFile(content), save=False)
            extra_image.save()
            self.extra_imgs.add(extra_image)
            #print self.extra_imgs.all()
    #self.reloadImages = False
    super(Item, self).save(*args, **kwargs)

我希望它创建一个ExtraImage对象(由ImageField组成)。并将其添加到当前模型的manytomy extra_img字段中。。。。在

奇怪的是,方法似乎正确地完成了它的工作,页面刷新后,我在extra_imgs字段中看不到任何内容。(并且ExtraImage项是实际创建的)


Tags: 方法name模型imageselfurlimgif
2条回答

问题是添加图像

self.extra_imgs.add(extra_image)

在数据库中创建self之前

^{pr2}$

为了补充San4ez的答案,这个问题(在保存对象的依赖关系之前必须先保存对象,并且依赖关系并不总是按照您期望的方式进行)在我第一次开始学习Django时让我感到沮丧。在

如果您有大的对象图(甚至小的对象图:)并且您不想手动处理这个问题,请查看Django ORM Tools,它有一个GraphSaver类,它将自动检测依赖关系并按正确的顺序保存图形。在

相关问题 更多 >

    热门问题