Powiedzmy mam dwa modele wyglądające tak:Jak pobrać dwa najlepsze produkty dla każdego rodzaju produktu?
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)
Teraz chcę, aby pobrać dwie najlepsze produkty (dwóch z najwyższym wynikiem) z każdego Producttype. Więc jeśli mam Telefony, komputery, telewizory jako ProductTypes Chcę dwa najlepsze telefony, komputery, telewizory.
Ponieważ nawet nie wiem, jak to zrobić w MySQL, próbowałem szukać rozwiązania MySQL, ale te, które uważam, są niezwykle złożone i nie wydaje mi się to zbyt skomplikowane.
Jestem skłonny do tworzenia własnego modelu dla najlepszych produktów i mam cronjob to naprawić, ale chciałbym zobaczyć, czy jest łatwiejsze rozwiązanie tego.
Inteligentne rozwiązanie, podoba mi się! Dzięki. – rinti
Nie rozumiem ... dlaczego używasz pętli? – IProblemFactory
Używasz pętli for tylko wtedy, gdy przychodzi czas na dostęp do dwóch najlepszych produktów (takich jak umieszczenie ich w szablonie lub cokolwiek innego). – Adam