我的模型中有两个类:
class Zones(models.Model):
zone = models.CharField(max_length=20)
def __str__(self):
return self.zone
class Weight(models.Model):
weight=models.FloatField(default=0)
rate = models.FloatField(null=True)
zones = models.ForeignKey(Zones, null=True)
def __str__(self):
return str(self.weight)
是否可以使用queryset获取给定特定速率的区域?
我不希望所有与该重量相关的区域,但我只想要与某些特定重量和速率相关的区域,这将是唯一的。
答案 0 :(得分:0)
雅,你应该。就这样做,
w = Weight.objects.filter(rate=2.99)
print [i.zones.zone for i in w]
答案 1 :(得分:0)
您可以按给定查询获取区域列表。
zones = Weight.objects.filter(rate=rate_value).value_list('zones')
答案 2 :(得分:0)
我不想要所有与该重量相关的区域,但我只想要那个 与某些特定重量和速率相关的区域 唯一的。
对于唯一性,最好将unique_together
条件赋予模型的Meta
类,如
class Weight(models.Model):
weight=models.FloatField(default=0)
rate = models.FloatField(null=True)
zones = models.ForeignKey(Zones, null=True)
def __str__(self):
return str(self.weight)
class Meta:
unique_together=(('weight', 'rate',))
然后确保查询结果只有一个,你可以使用模型对象' get
方法。
related_zone = Weight.objects.get(weight=WEIGHT, rate=RATE).zones
答案 3 :(得分:0)
zones = Weight.objects.filter(rate=rate_value).values('zones', 'rates', 'weight')