Django ORM-获取具有OneToOneField

时间:2019-11-26 05:07:20

标签: django django-models django-orm

我的模型结构与此类似。

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种类似于textimage的块类型,所以我的select_related子句很大。有没有办法获得所有blocks的东西?

0 个答案:

没有答案