我有一个非常简单的 View ,用于检查是否存在某些内容,如果不存在则重定向。由于某种原因,它不起作用。异常一直在触发。我已验证数据库中有应该返回的记录。
欢迎提出任何建议。
@login_required
def goal_display(request):
user = get_object_or_404(User, id=request.user.id)
if request.user != user:
return permission_denied(request)
try:
goal = Goal.objects.filter(user=user).latest('created')
return render_to_response('achieve/dashboard.html', {
"goal": goal
}, context_instance=RequestContext(request))
except:
return redirect('goal_add')
最佳答案
您尝试使用 if 语句和 exists() 吗?我认为更容易。
def goal_display(request):
user = get_object_or_404(User, id=request.user.id)
if request.user != user:
return permission_denied(request)
if(Goal.objects.filter(user=user).lastest('created').exists()):
goal = Goal.objects.filter(user=user).latest('created')
return render_to_response('achieve/dashboard.html', {
"goal": goal
}, context_instance=RequestContext(request))
else:
return redirect('goal_add')
也许这不是最漂亮的方式,但我认为它应该可行。
关于django - 在 Django View 中过滤和重定向未按预期执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102739/