Django 动态 url 重定向到 404

Posted

技术标签:

【中文标题】Django 动态 url 重定向到 404【英文标题】:Django dynamic url redirecting to 404 【发布时间】:2021-11-21 04:38:43 【问题描述】:

我正在尝试创建一个动态 URL 模式,其中将一个 ID 传递到 URL 并使用从数据库中检索一条信息。 这是模式的定义:

urlpatterns = [
    path('',views.index,name='index'),
    path('<int:question_id/>', views.detail,name='detail'),
    path('<int:question_id>/results/',views.results,name='results'),
    path('<int:question_id>/vote/',views.vote,name='vote')
]

这是用于检索信息的代码:

def detail(request, question_id):
    question = get_object_or_404(Questions, pk = question_id)
    return render(request, 'polls/detail.html', 'question': question)

无论在 url 中传递什么 id,用户似乎都被重定向到 404 页面。

这是我的 index.html:

<!DOCTYPE html>
<html lang="en">
<!-- head -->
<body>
    % if latest_question_list %
    <ul>
    % for question in latest_question_list %
        <li><a href="/polls/question.id/"> question.qtext </a></li>
    % endfor %
    </ul>
% else %
    <p>No polls are available.</p>
% endif %
</body>
</html>

【问题讨论】:

你能显示index.html文件吗?错误在那里 【参考方案1】:

您可以像这样在 HTML 文档中提供您的 URL:

<a href="% url 'detail' question_id=1 %">Get Detail</a>

【讨论】:

以上是关于Django 动态 url 重定向到 404的主要内容,如果未能解决你的问题,请参考以下文章

如果在 django 的 urls.py 中找不到,则将任何 url 重定向到 404.html

如何使用自定义 django 404 错误视图重定向?

Django 1.6 301 url 重定向不起作用

删除 404 重定向上的所有 url 参数

当指定的对象不存在时,如何从 Django DetailView 重定向?

如何将 404 重定向到 index.html 并将 URL 重写为主页 URL?