gpt4 book ai didi

django - "Reverse for ... not found"- 但有吗?

转载 作者:行者123 更新时间:2023-12-02 09:53:12 24 4
gpt4 key购买 nike

好吧,我已经为此绞尽脑汁 30 多分钟了,所以我现在遇到了堆栈溢出问题。

我有一个模板:

{% if user.is_authenticated %}
<a href="{% url 'admin' %}">
Admin
</a>
{% endif %}

在 urls.py 中:

urlpatterns = [
path('admin', admin.site.urls, name = 'admin'),
path('', views.index, name ='index'),
]

但我仍然得到:无反向匹配/

未找到“admin”的反向操作。 “admin”不是有效的 View 函数或模式名称。

这是为什么呢?我什至对其进行了测试,并将 admin 替换为index,它将我重定向到views.index。我尝试用其他内容替换模式的名称,并尝试将其与 url 路径匹配(就像现在一样)。没有运气!我刚刚破坏了 django 吗?

最佳答案

如果我们看一下路径,我们会看到:

path('admin', <b>admin.site.urls</b>, name='admin'),

这意味着 admin 不是路径,而是路径的集合。在admin.site.urls后面有一组路径和相应的 View 。所以你不能引用一组URL,你只能引用一个路径。

现在在admin.site.urls下,我们看到几个 View :

>>> admin.site.urls
([<URLPattern '' [name='index']>,
<URLPattern 'login/' [name='login']>,
<URLPattern 'logout/' [name='logout']>,
<URLPattern 'password_change/' [name='password_change']>,
<URLPattern 'password_change/done/' [name='password_change_done']>,
<URLPattern 'jsi18n/' [name='jsi18n']>,
<URLPattern 'r/<int:content_type_id>/<path:object_id>/' [name='view_on_site']>,
<URLResolver <URLPattern list> (None:None) 'auth/group/'>,
<URLResolver <URLPattern list> (None:None) 'auth/user/'>,
<URLPattern '^(?P<app_label>auth)/$' [name='app_list']>],
'admin',
'admin')

因此,我们可以引用映射到管理站点“根”(第一个)的管理 URL:

{% if user.is_authenticated %}
<a href="{% url <b>'admin:index'</b> %}">
Admin
</a>
{% endif %}

这里的admin:部分源自admin“app”的namespace:index部分指的是 View 。

关于django - "Reverse for ... not found"- 但有吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53034789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com