rin*_*nti 6 django django-models
假设我有两个看起来像这样的模型:
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)
现在我想从每个ProductType中获取前两个产品(两个得分最高的产品).因此,如果我有手机,电脑,电视作为ProductTypes,我想要两个最好的手机,电脑,电视.
因为我甚至不知道如何在MySQL中执行此操作,所以我尝试搜索MySQL解决方案,但我找到的解决方案非常复杂,这并不是一件非常复杂的事情.
我倾向于为顶级产品制作一个自己的模型,并有一个cronjob来解决这个问题,但我想看看是否有一个更简单的解决方案.
好吧,您可以在ProductType类中创建一个方法,该方法返回其产品的前两个结果:
class ProductType(models.Model):
product_type = models.CharField(max_length=100)
def TopTwoProducts(self):
return self.product_set.order_by('-score')[0:2]
Run Code Online (Sandbox Code Playgroud)
然后你会做的事情如下:
for type in ProductType.objects.all():
type.TopTwoProducts()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
355 次 |
| 最近记录: |