我的模型结构与此类似。
class Block(models.Model):
TYPE_CHOICES = ( ('text', "TEXT"), ('image', "IMAGE"), ) // I have around 10 types
type = models.CharField(max_length=8, choices=)
class User(models.Model):
current_block = models.ForeignKey(Block, on_delete=models.CASCADE)
class TextBlock(models.Model):
block = models.OneToOneField(Block, on_delete=models.CASCADE, related_name='text', primary_key=True)
class ImageBlock(models.Model):
block = models.OneToOneField(Block, on_delete=models.CASCADE, related_name='image', primary_key=True)
因此,如果我想使用选择的相关短语来获取current_block客户,请使用Customer.objects.select_related('block', 'block__text', 'block__image')
。我有10种类似于text
和image
的块类型,所以我的select_related
子句很大。有没有办法获得所有blocks
的东西?