我建立一個塊的系統與一個獨立的子類,像這樣每種類型塊的基塊模型:如何獲得一個查詢集以在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對象。