С помощью Django Listview можно ли отображать новые столбцы, которые содержат значения деления по полу и по модулю?
У меня есть следующие две модели:
models.py
class Model_Item(models.Model):
item_name = models.CharField(max_length = 100, null = False, blank = False, unique = True)
item_bottleperpack = models.FloatField(null = True, blank = False) # e.g. 100 bottles per pack
def __unicode__(self):
return self.item_name
class Model_ItemTransaction(models.Model):
item = models.ForeignKey(Model_Item, to_field = "item_name")
item_sold = models.FloatField(null = True, blank = True) # in terms of bottle
def __unicode__(self):
return self.item
С этим списком просмотра:
views.py
class View_Item(ListView):
def get_queryset(self):
queryset = Model_Item.objects.all()
queryset = queryset.annotate(
sum_ = Sum("model_itemtransaction__item_sold")
)
queryset = queryset.annotate(
floor_division_ = F("sum_") // F("item_bottleperpack"),
module_ = F("sum_") %% F("item_bottleperpack")
)
return queryset
В принципе, если я продал, скажем, 650 бутылок, а в упаковке 100 бутылок, я бы хотелпросмотр списка для отображения:
- 6 упаковок в столбце "разделение по этажам" и
- 50 бутылок в модуле "по модулю"column.
В настоящее время я получаю следующие ошибки с моим текущим кодом
unsupported operand type(s) for //: 'F' and 'F'
and
unsupported operand type(s) for %%: 'F' and 'F'
и надеюсь, что кто-то может помочь мне найти какое-либо решение этой проблемы (и это не обязательно должно бытьс условным выражением ).