【发布时间】:2018-11-26 15:18:52
【问题描述】:
我有以下模型并使用 prefetch_related 提取查询集,如下所示。
queryset = Light.objects.filter(
certificate__name="A").prefetch_related('zone__namingzone'
)
从这个查询集中,我想得到以下数据集。
{"naming1":lpd1,"naming2":lpd2...}
但是,当我尝试从如下查询集中提取属性时,我得到create_reverse_many_to_one_manager
for i in queryset:
print (i.zone.namingzone)
我想得到的是命名表中的命名属性。谁能告诉我如何提取这个?
models.py
class Certificate(models.Model):
name=models.CharField(max_length=20)
class Zone(models.Model):
zone=models.CharField(max_length=20)
class Light(models.Model):
certificate=models.ForeignKey(Certificate, on_delete=models.CASCADE,related_name='certificate')
zone=models.ForeignKey(Zone, on_delete=models.CASCADE,related_name='lightzone')
lpd=models.IntegerField()
class Meta:
unique_together = (('certificate', 'zone'),)
class Naming(models.Model):
zone=models.ForeignKey(Zone, on_delete=models.CASCADE,related_name='namingzone')
naming=models.CharField(max_length=20)
【问题讨论】:
标签: django