问题标签 [django-url-reverse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
51 浏览

python - Django - 测试从 url 参数检索的视图名称,即。参考=家

简而言之,我正在尝试在我的一个视图函数中测试从 URL 参数捕获的视图名称,以查看它是否有效。如果没有,重定向到另一个页面。

例如,拿这个网址...

www.site.com/users/?ref=view_name

那么在我看来

当然,问题是,如果用户更改 ref 参数,它将返回 404。我希望能够测试是否ref=home是有效视图并将其返回,如果不是则重定向到另一个视图。

我一直在搞乱 Django 的决心和逆转,但我没有得到我想要的结果。

我还尝试以各种方式使用 try/finally 与 resolve 和 reverse 混合。是的,愚蠢的......我知道。

我已经搜索了将近两个小时,试图资助一种简洁的方式来做到这一点。

任何帮助,将不胜感激!

0 投票
0 回答
35 浏览

python - Django - 两个不同的 url 调用相同的方法,这会引发错误

项目urls.py

应用urls.py

在应用程序urls.py中,第二个 url 是http://127.0.0.1:8000/expert-elektronikfachhandel

这将我带到商店详细信息页面

我正在使用以下函数调用第一个 url

现在的问题是当我调用第二个 url 然后它调用第一个 url 时会引发错误(两者都在同一页面中)。为什么会发生这种情况,我无法找出。有什么我做错了。

好的,我想我找到了问题所在。但我不知道如何处理这个。

第一个和第二个 url 都是用 get 请求和从同一页面(这是从主页)调用的,但是第一个 url 是从表单提交调用的(它必须是一个 get 请求),当我们显式更改时调用第二个 url网址。

因此,当我提交表单时,它调用第一个 url,因为它是一个获取请求,它也调用了第二个 url。我认同?我不确定我的想法是否正确。

0 投票
1 回答
23 浏览

python - 如果匹配,则向 url 发送请求,否则将其发送到 django 中的参数化 url

urls.py

我有这些 url 模式。如果你看的话,第一个和其他 url 路径,它们的编写方式完全相同。不同之处仅在于第一个 url 是参数化的 url,其他的是硬编码的 url。

但实际上,当我调用任何 url 时,第一个 url 也会被调用。

我必须检查是否有任何现有 url(如authenticate/, product_upload/)与任何应用程序 url 匹配,然后它应该重定向到那个,否则它应该调用re_path(r'^([-\w]{3,})/$')(第一个 url)这个 url

仅当 url 与其他 url 不匹配时,是否有任何方法可以调用第一个 url(位于此模式中)。

注意:我不能更改网址,因为这是一项要求。

0 投票
1 回答
18 浏览

python - Django - NoReverseMatch 错误,即使参数正确(无命名空间)

我正在尝试创建一个存储问题(特别是数学问题)并将其显示给用户的应用程序。我还没有添加很多我想要的功能,而且由于我对 Django 还很陌生,我一直在关注 Django 教程项目,并根据我的需要进行更改。但是,即使我似乎传入了正确的参数,我也遇到了 NoReverseMatch 错误。我的代码如下。

模型.py

网址.py

视图.py

我的 HTML 文件的链接如下:
base_generic.html:链接 问题_list.html:链接问题 _detail.html
链接

我的工作区结构如下:

我已经阅读了其他 StackOverflow 帖子,但似乎没有一个适用于我的情况。此外,在 problem_list.html 中,如果href链接中的值为Problem.get_absolute_url,则站点将加载,但单击“所有问题”的链接将返回同一页面。但是,如果我prob.get_absolute_url输入href链接,我会收到 NoReverseMatch 错误。

这是我得到的确切错误:

Django告诉我错误源于prob.get_absolute_url调用problem_list.html