Django - модель, которая имеет счетчик в поле CHOICES
Джанго 2.1, Питон 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. Элементы в моем списке могут изменяться (медленно), но я не хочу создавать поле в модели каждый раз, когда это происходит.
2 ответа
В вашей ситуации я не думаю, что было бы целесообразно хранить count
домов в модели. Если вы хотите получить count, просто сделайте это, используя count ():
House.objects.filter(house_type=1).count()
Вы можете создать поле выбора в своей модели, а не хранить каждый счет. Обновить вас 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()