我有一个非常简单的视图,检查是否存在某些内容,然后重定向,如果没有。由于某种原因,它不起作用。异常一直在发射。我已经确认数据库中有记录应该返回。
欢迎任何建议。
@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')
答案 0 :(得分:2)
您是否尝试使用if语句并且存在()?我认为更容易。
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')
也许不是最漂亮的方式,但我认为它应该有用。