1

django 2.1,python 3.6

假设我有一组东西 ['house_1','house_2',...] 并且我想要一个模型来记录每个项目的数量。我想它看起来像下面这样。

class Card(models.Model):
    house_1_count = models.IntegerField(...
    house_2_count = models.IntegerField(...
    house_3_count = models.IntegerField(...

有没有办法转换这个模型,这样项目就不会被硬编码。就像使用 CHOICES 字段一样。我列表中的项目可能会(缓慢地)改变,但我不想每次发生时都必须在模型中创建一个字段。

4

2 回答 2

1

在您的情况下,我认为将count房屋存储在模型中是不明智的。如果你想得到计数,那么只需使用count()这样做:

House.objects.filter(house_type=1).count()
于 2019-01-04T03:36:17.860 回答
0

您可以在模型中创建一个选择字段,而不是存储每个计数。更新你card的模型:

class Card(models.Model):
    house = models.IntegerField(choices=list(zip(range(1, 4), range(1, 4))), max_length=1)

要计算具有特定类型房屋用途的卡片count()

Card.objects.filter(house=1).count()
于 2019-01-04T07:18:08.213 回答