gpt4 book ai didi

python - Django 模型出现次数

转载 作者:行者123 更新时间:2023-12-01 12:04:45 26 4
gpt4 key购买 nike

我是 Django 的新手,需要我的模型方面的帮助。

class Region(models.Model):
region_name = models.CharField(max_length=10)
def __str__(self):
return self.region_name

class Property(models.Model):
prop_name = models.CharField(max_length=200)
region_name = models.ForeignKey(Region, on_delete=models.CASCADE, verbose_name="Region")
prop_code = models.IntegerField(default=0, verbose_name="Property")
def __str__(self):
return self.prop_name

class Sale(models.Model):
prop_name = models.ForeignKey(Property, on_delete=models.CASCADE)
employee = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="Person")
prop_state = models.CharField(null=True, max_length=5, choices=[('new','New'),('used','Used')])
date = models.DateField('Sale Date')
def __str__(self):
return '%s : %s %s - %s' % (self.prop_name.prop_name, self.employee, self.date, self.prop_state)

这是我的模型。 Property 继承自 Region,Sale 继承自 property。我想做的是计算一个地区的销售数量和特定特性的销售数量。但是我不知道哪种方法是解决这个问题的最佳方法。我试过使用 lambda 作为使用 count() 函数的模型字段,但我并没有看到太多成功。如果您有任何建议,请告诉我。

最佳答案

如果您已经有了 Property/Region 对象,像这样的东西应该可以工作

sales_per_property = Sale.objects.filter(prop_name=property).count()
sales_per_region = Sale.objects.filter(prop_name__region_name=region).count()

编辑:

看到您尝试将 lambda 函数添​​加到模型字段,这可能更符合您的要求。

class Region(models.Model):
...
@property
def sales(self):
return Sale.objects.filter(prop_name__region_name=self).count()

Property 也是如此。只需使用 region.sales

访问该属性

关于python - Django 模型出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58864878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com