Sagen wir, ich habe zwei Modelle wie folgt aussehen:Wie hole ich die beiden besten Produkte für jeden Produkttyp?
class ProductType(models.Model): product_type = models.CharField(max_length=100) class Product(models.Model): name = models.CharField(max_length=200) slug = models.SlugField() product_type = models.ForeignKey(ProductType) score = models.PositiveIntegerField(default=0)
Jetzt möchte ich von jedem Product die ersten beiden Produkte (die beiden mit der höchsten Punktzahl) holen. Also, wenn ich Telefone haben, Computer, Fernseher als Produkttypen möchte ich die beiden besten Handys, Computer, Fernseher.
Da ich nicht einmal weiß, wie man das in MySQL macht, habe ich versucht nach der MySQL-Lösung zu suchen, aber diejenigen, die ich finde, sind extrem komplex und das fühlt sich nicht sehr komplex an.
Ich lehnte ein eigenes Modell für die Top-Produkte zu machen und haben einen Cronjob dieses Problem zu beheben, aber ich würde gerne sehen, wenn es eine einfachere Lösung dieses Problems.
intelligente Lösung, Ich mag es! Vielen Dank. – rinti
ich verstehe es nicht ... warum verwenden Sie for-Schleife? – IProblemFactory
Sie nur die for-Schleife verwenden, wenn es an der Zeit die ersten beiden Produkte (wie die Auflistung sie in einer Vorlage oder was auch immer) für den Zugriff kommt. – Adam