首页 > 解决方案 > 计算数据库中的记录数:Django

问题描述

我正在尝试在 Django 中输出我的数据库中“订阅者”数量的计数,我在视图中找到了计数,然后我认为我在 html 中正确使用它,但它总是只输出“那里是订阅者”,没有数字,当我在 html 中使用“|length”时,它总是输出 0,所以我不确定我的错误是什么。

视图.py

def list_todo_items(request):
    context = {'todo_list' : Todo.objects.all()}
    count = Todo.objects.count()
    context2 = {'count': count}
    # context = {'count': Todo.objects.count()}
    # count = Todo.objects.count()
    return render(request, 'index.html',context,context2)

def insert_todo_item(request: HttpRequest):
    todo = Todo(content=request.POST['content'])
    try:
        todo.full_clean()

    except ValidationError:
        # pymsgbox.alert('ValidationError! Phone number must be entered in the format: +999999999. Up to 15 digits allowed.', 'Title')
        return redirect('/main/list/')

    todo.save()
    return redirect('/main/list/')

def delete_todo_item(request,todo_id):
    todo_to_delete = Todo.objects.get(id=todo_id)
    todo_to_delete.delete()
    return redirect('/main/list/')

索引.html

{% for todo in todo_list %}
    <li class="list-group-item"> {{todo.content}}

    <form action="{% url 'delete_todo_item' todo.id %}" method="post" class="float-right d-inline">
        {% csrf_token %}
        {{form.as_p}}
        <button type="submit" class="btn">
            <i class="far fa-trash-alt fa-lg text-danger float-right"></i>
        </button>
    </form>

</li>

<li class="list-group-item">
    <span class="font-italic">There are {{ count }} subscribers.</span>
</li>

{% empty %}
<li class="list-group-item">
     <span class="font-italic">No current subscribers.</span>
</li>
{% endfor %}

标签: pythonhtmldjango

解决方案


您可以将多个项目传递给同一个上下文。字典允许添加多个键值对(只要键是可散列的且唯一的):

def list_todo_items(request):
    context = {
        'todo_list': Todo.objects.all(),
        'count': Todo.objects.count()
    }
    return render(request, 'index.html', context)

推荐阅读