Djang中显示奇怪的过滤值

2024-06-16 09:55:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个过滤器和.aggregate来对我的Manifests模型中的一列cases的值求和。当它显示在模板中时,它给了我正确的数量,但是当页面显示时,它显示为,例如{'cases__sum': 1192}。数字1192确实是总和,但我不想让剩下的文本显示给用户!我怎样才能阻止这一切,只知道电话号码

视图.py

def add_manifest(request, reference_id):
    form = CreateManifestForm(request.POST or None)
    if request.method == "POST":
        if form.is_valid():
            instance = form.save(commit=False)
            try:
                order = Orders.objects.get(id=reference_id)
                instance.reference = order
            except Orders.DoesNotExist:
                pass
            instance.save()
    form = CreateManifestForm(initial={'reference': Orders.objects.get(reference=reference_id)})
    reference = request.POST.get('reference')
    manifests = Manifests.objects.all().filter(reference=reference)
    total_cases = Manifests.objects.filter(reference=reference).aggregate(Sum('cases')) #totaling the cases for the readonly field
    totalCNF = 0
    for item in manifests:
        totalCNF += item.cases * item.CNF

    context = {
        'form': form,
        'reference_id': reference_id,
        'manifests' : manifests,
        'total_cases': total_cases,
        'totalCNF': totalCNF,

    }

    return render(request, 'add_manifest.html', context)

添加清单.html

  <label for="form.reference" class="formlabels">Case Total:</label><br>
  <input type="text" value="{{ total_cases }}" readonly>

我只想在这个HTML输入框中显示数字,而不是整个引用


Tags: instanceformidforgetobjectsrequestpost
1条回答
网友
1楼 · 发布于 2024-06-16 09:55:45

聚合值存储在字典中。你可以用

{{ total_cases.cases__sum }}

要仅显示值,或在构造上下文变量时执行此操作,请执行以下操作:

...
'total_cases': total_cases['cases__sum'],

相关问题 更多 >