python - 计算数据库中的记录数: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 %}
解决方案
您可以将多个项目传递给同一个上下文。字典允许添加多个键值对(只要键是可散列的且唯一的):
def list_todo_items(request):
context = {
'todo_list': Todo.objects.all(),
'count': Todo.objects.count()
}
return render(request, 'index.html', context)
推荐阅读
- node.js - 将用户传递给对话
- node.js - 了解 module.export 以传递参数
- json - 如何用各种数组解析json
- java - 插入表时如何避免数据不一致
- javascript - 覆盖嵌套打字稿界面中的属性
- c# - C# 将列表输出到 Winforms 上的 DataGridView 或 ListView
- c - 兼容的结构类型
- elasticsearch - 支持不区分大小写搜索的 Elasticsearch 模板
- xamarin.forms - 使用 Xamarin Forms 应用程序中的图像打印 html
- android-studio - Flutter项目导入Android studio