2016-03-22 13 views
0

Ich habe zwei Klassen in meinem Modell:Get Wert von django Modellfeld

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) 

Ist es möglich, Zone einer gegebenen bestimmten Rate mit queryset zu bekommen?

Ich möchte nicht alle Zonen, die mit diesem Gewicht verbunden sind, aber ich möchte nur die Zone, die mit einem bestimmten Gewicht und Rate verbunden ist, die einzigartig sein wird.

Antwort

0

Ja, sollten Sie. Tun Sie einfach so,

w = Weight.objects.filter(rate=2.99) 
print [i.zones.zone for i in w] 
+0

Es gibt alle zu diesem Gewicht bezogen Zonen, aber ich möchte nur die Zone, die zu einem bestimmten Gewicht und Geschwindigkeit zusammenhängt, die einzigartig sein wird. –

+0

@AnmolGulati Post eine Beispieldaten. –

0

Sie können Liste der Zone durch gegebene Abfrage erhalten.

zones = Weight.objects.filter(rate=rate_value).value_list('zones') 
0

Ich möchte nicht alle zu diesem Gewicht bezogen Zonen, aber ich möchte nur die Zone, die zu einem bestimmten Gewicht und Geschwindigkeit zusammenhängt, die einzigartig sein wird.

Für Einzigartigkeit, wäre es besser, die unique_together Bedingung für die Meta Klasse des Modells zu geben, wie

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',)) 

dann darauf achten, dass das Abfrageergebnis sein würde und nur ein, können Sie die Modellobjekte get Methode.

related_zone = Weight.objects.get(weight=WEIGHT, rate=RATE).zones 
0
zones = Weight.objects.filter(rate=rate_value).values('zones', 'rates', 'weight') 
Verwandte Themen