我有这样的事情:
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个图像。我不明白它是如何运作的......
答案 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)