将图像添加到子类

时间:2015-11-16 13:03:36

标签: python django python-3.x django-models

我有这样的事情:

class Foo(models.Model):
    pass
    class Meta:
        abstract = True

class FooImage(models.Model):
    model = models.ForeignKey('Foo', related_name='image')
    image = models.ImageField(upload_to='goo/zoo/', null=True)

class Bar(Foo):
    pass
    class Meta:
        abstract = True

class FooBar(Bar):
    pass

这里你只有FooBar作为孩子,但还会有很多其他孩子。

我想创建一个FooBar对象,例如,有5个图像。我不明白它是如何运作的......

1 个答案:

答案 0 :(得分:1)

由于FK来自Foo(和它的孩子) FooImage,而不是相反,所以你在这里使用继承没有区别:你可以直接将图像添加到FooBar实例好像是一个独立的实例。

my_foo_bar = FooBar.objects.create(field=value)
my_foo_bar.images.add(my_foo_image)
# or
FooImage.objects.create(model=my_foo_bar, image=my_image)