我建立一个块的系统与一个独立的子类,像这样每种类型块的基块模型:如何获得一个查询集以在Django中返回多个模型?
class BlockType(models.Model):
''' Defines properties of a block '''
title = models.CharField(max_length=50)
class_name = models.CharField(max_length=50)
class Block(models.Model):
''' Implementation of the block '''
product = models.ForeignKey('product.Product', related_name='blocks')
block_type = models.ForeignKey('product.BlockType', related_name='used_blocks')
order = models.IntegerField(default=0)
class ImageBlock(Block):
''' An image block '''
image = models.CharField(max_length=255)
class TextBlock(Block):
''' A text block '''
text = models.TextField()
我想什么,能够做的是:
b = product.blocks.all()
而不是一个Block对象列表。作为相关子类的列表。
所以,如果一个产品有一个TextBlock和2个ImageBlocks。以上将返回一个TextBlock对象和2个ImageBlocks而不是3个Block对象。