Django 视图变量

Django view variables

我正在尝试根据详细视图模板中的两个用户给定变量创建一个值。我试过使用 jinja 在 HTML 内部进行数学计算,但后来发现首选方法是在应用程序 views.py 文件内部创建变量。我发现了一些相互矛盾的方式这是我目前拥有的:

def meter_variables(request):
    GvData.incoming_meter_daily_total = (GvData.incoming_meter_1_close - GvData.incoming_meter_1_open)
    + (GvData.incoming_meter_2_close - GvData.incoming_meter_2_close)

    return render(request, 'geneva/geneva_record.html',
                  {'incoming_meter_daily_total': GvData.incoming_meter_daily_total})

在我的 html 我有:

<td><input type="number" class="form-control" placeholder="Daily Total"

value="{{ incoming_meter_daily_total }}"/>
                            </td>

它没有提供任何价值。我认为我错误地访问了模型对象中的值,但我不确定具体是如何访问的。

我在 models.py 中的 class 很长,但所有字段都是以下的变体:

class GvData(models.Model):
    gv_01_open_stock = models.FloatField(default=0)
    gv_02_open_stock = models.FloatField(default=0)

我的观点已创建 class 观点:

class IndexView(generic.ListView):
    template_name = 'geneva/index.html'

    def get_queryset(self):
        return GvData.objects.all()


class RecordView(generic.DetailView):
    model = GvData
    template_name = 'geneva/geneva_record.html'

如果您将视图中的数据发送到模板 as-is,则无需在 value="{{ object.incoming_meter_daily_total }}"

中添加 "object"

在您看来,您正在为此键分配值:incoming_meter_daily_total 所以这是您需要在模板中使用的确切变量

value="{{ incoming_meter_daily_total }}"

您正在从您的模型中获取一个查询集。通过查看代码,您将尝试直接从此查询集中获取值。 Django 在模板上静默失败,目的是不破坏整个页面。从此查询集的元素之一访问数据(使用 [0] 或所需的值)或遍历查询集。