django - 如何向用户显示他的愿望清单是空的?
问题描述
像标题一样的问题。
当我尝试这个views.py时,没有发生错误,但网站不想显示,页面显示为源代码。有什么解决办法吗?
def wishlist(request):
if request.user.is_authenticated:
user = request.user.id
if List.objects.filter(user=user).exists():
context = List.objects.filter(user=user)
error = 'Your wishlist is empty'
else:
context = List.objects.filter(user=user)
else:
context = WishList(request)
return render(request, 'wishlist/wishlist.html', {'wishlist': context}, {'error': error})
解决方案
这里有两个主要错误:
- 您的条件检查是否有任何愿望清单,因此应将错误放在
else
零件中,而不是if
零件中;和 - 您将多个变量作为包含多个项目的字典传递给上下文。
def wishlist(request):
if request.user.is_authenticated:
user = request.user.id
context = List.objects.filter(user=user)
if context:
error = None
else:
error = 'Your wishlist is empty'
else:
context = WishList(request)
return render(
request,
'wishlist/wishlist.html',
{'wishlist': context, 'error': error}
)
通过检查 的真实性context
,我们将只进行一次查询来获取所有列表,而不是在我们首先检查列表是否为空的情况下进行两次查询,然后再进行一次查询来检索数据。
推荐阅读
- reactjs - 使用打字稿创建功能组件 HOC
- django - 在 django 中获取所有用户
- leaflet - 任何想法如何显示附近的两条(或更多条)折线
- gremlin - Gremlin:将查询的输出构建为二维数组
- neural-network - 如何处理模型蠕变
- java - 如何在纯文本 XML 中分配角色/权限
- swiftui - SwiftUI:以编程方式关闭警报
- python - Python:strip() 方法不从文本中删除空格
- gurobi - 用 Gurobi 解决 Python 中的车辆路由问题 - 我与三指数公式的目标函数作斗争(快速求和法)
- linux - 从扩展类型的实例打印父类型的成员