В моем классе views.py
для ListView я пытаюсь добавить формулу, которая использует определенный элемент из объекта в методе get_context_data()
.Вот что я пробовал.
Models.py
Class MyModel(models.Model):
foo = models.FloatField()
bar = models.FloatField()
views.py
class MyView(generic.ListView):
template_name = "my_item_list.html"
model = MyModel
def get_context_data(self, **kwargs):
obj = MyModel.objects.get(pk=this_object_id)
var_a = obj['foo']
var_b = obj['bar']
result = var_a * var_b
context = {
'result': result,
}
return context
Это выдает ошибку object does not support indexing
.Я попытался несколько разных способов доступа к конкретному элементу объекта без удачи.Я не пытаюсь комментировать (что является подавляющим большинством вопросов и ответов), просто использую значение из указанного поля объекта.
В качестве примечания, если я передам obj
в данные контекста, я могу легко перейти к значению элемента в шаблоне - так что я знаю, что метод .get()
работает правильно - это просто "простая "математика в представлении, я не могу добраться до работы.
Я нашел этот (model_to_dict()
), но он превращает obj
в словарь - я думаю, что это может сработать, но выглядит гораздо более многословно, чем я ожидал.