获得django模型领域的价值

时间:2016-03-22 07:16:51

标签: python django

我的模型中有两个类:

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获取给定特定速率的区域?

我不希望所有与该重量相关的区域,但我只想要与某些特定重量和速率相关的区域,这将是唯一的。

4 个答案:

答案 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')