【问题标题】:Django - model that has a count per CHOICES FieldDjango - 每个 CHOICES 字段都有一个计数的模型
【发布时间】:2019-01-04 03:32:26
【问题描述】:

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 字段一样。我的列表中的项目可能会(缓慢地)改变,但我不想每次都在模型中创建一个字段。

【问题讨论】:

    标签: django django-models django-model-field


    【解决方案1】:

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

    House.objects.filter(house_type=1).count()
    

    【讨论】:

      【解决方案2】:

      您可以在模型中创建一个选择字段,而不是存储每个计数。 更新你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()
      

      【讨论】:

        猜你喜欢
        • 2017-04-22
        • 2017-01-31
        • 2020-08-08
        • 1970-01-01
        • 2019-04-27
        • 2011-02-20
        • 1970-01-01
        • 1970-01-01
        • 2019-03-11
        相关资源
        最近更新 更多