hier ist die models.pyUnable max-Wert erhalten Anmerkungen versehen mit
class StoreProduct(models.Model):
product = models.ForeignKey('products.Product')
category = models.ForeignKey('products.Category')
store = models.ForeignKey('Store')
price = models.IntegerField(null=True , blank=True)
quantity = models.IntegerField(null=True , blank=True)
discount = models.IntegerField(null=True , blank=True)
size = models.CharField(max_length=50 , null=True , blank=True)
color = models.CharField(max_length=50 , null=True , blank=True)
timestamp = models.DateTimeField(auto_now_add=True,auto_now=False)
objects = StoreProductManager()
def __unicode__(self):
return self.product.title
hier ist die views.py
if discount:
max_discount = StoreProduct.objects.filter(product=item).values_list('discount' , flat=True).annotate(Max('discount'))
min_price_store = StoreProduct.objects.filter(product=item , discount=max_discount).values_list('store__StoreName' , flat=True)
print max_discount, min_price_store
if discount > max_discount:
item.discount = discount
item.save()
die annotate Abfrage Renditen führen ähnliche
[30L, 20L, 40L]
Was ich hier will, ist, dass es den maximalen Rabatt zurückgeben sollte..aber es wirft mehrere Ergebnisse wie 20L, 30L, 40L.
was kann ich tun, um den maximalen Wert für den Rabatt zu erhalten?
Vielen Dank.
Das Problem mit Ihre Abfrage besteht darin, dass Sie gerade versuchen, nach dem "Rabatt" -Feld zu gruppieren und dann das "Max()" jeder Gruppe zu finden, das im Grunde die verschiedenen Rabatte an Sie zurückgibt. Der richtige Weg ist die Verwendung von aggregate() '. –
@Aditya Haben Sie eine Antwort zu diesem Beitrag erhalten http://stackoverflow.com/q/37550364/4099593? Sie können in einem Chat-Raum fragen http://chat.stackoverflow.com/rooms/6/python Aber ich weiß nicht, ob Sie dort ab sofort sprechen können. –
Nein, ich habe es nicht bekommen und plus ich bekam negative Bewertungen, so löschte ich es @ BhargavRao –