django - 在 Django View 中过滤和重定向未按预期执行

标签 django django-views django-urls

我有一个非常简单的 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/

相关文章:

python - Django工作流程从一个 View 重定向到另一个 View 并使用url参数显示页面

Python 正则表达式 : string does not contain "jpg" and must have "-" and lowercase

django - 在 Django 1.2 中登录后重定向时出错

python - 当我在 for 循环中添加 {% include %} 标签时,元素消失

Django channel 2.0 : call Consumer's channel by its name

django - 如何测试我的 redis 缓存是否正常工作?

python - 检查 Django CBV 更新中的更改字段

python - Google App Engine Django 补丁中没有反向错误?

django - 配置 uwsgi 服务器以提高性能

python - Django 导入错误 : No module named middleware