Can't give href to a link, error: "Reverse for 'foo' not found"
Can't give href to a link, error: "Reverse for 'foo' not found"
我是 django 的新手,我得到的错误是:"Reverse for 'influencers' not found. 'influencers' is not a valid view function or pattern name"。我想要做的是将两个不同的 urls (site.com && site.com/influencers) 重定向到同一个视图。这是因为我有一个侧面菜单,其中包含一个名为 "Influencers" 的选项卡,我希望此 link 和 "mysite.com" 都能正常工作。我什至接受了不使用 mysite。com/influencers 并尝试了 href="{% url '' %}" 之类的东西,但它也没有用。
这一行在我的 base.html 文件中导致错误:
<a href="{% url 'app1:influencers' %}" class="side_link"> >  Influencers</a>
这是我的观点:
class InfluencerList(LoginRequiredMixin, ListView):
model = Influencer
那是我的 urls.py 文件:
app_name = 'app1'
urlpatterns = [
path('', InfluencerList.as_view()),
path('influencers', InfluencerList.as_view()),
]
感谢任何帮助或建议。
您需要指定路径的名称:
app_name = 'app1'
urlpatterns = [
path('', InfluencerList.as_view()),
path('influencers', InfluencerList.as_view()<b>, name='influencers'</b>),
]
我觉得有点“奇怪”,你在两个不同的路径上使用完全相同的视图。最好只列出一次相同的视图(具有相同的参数等)。
编辑:您可以使用 RedirectView
[Django-doc] 让第一个路径重定向到第二个路径,例如:
from django.views.generic.base import <b>RedirectView</b>
app_name = 'app1'
urlpatterns = [
path('', <b>RedirectView.as_view(pattern_name='app1:influencers')</b>),
path('influencers', InfluencerList.as_view(), name='influencers'),
]
我是 django 的新手,我得到的错误是:"Reverse for 'influencers' not found. 'influencers' is not a valid view function or pattern name"。我想要做的是将两个不同的 urls (site.com && site.com/influencers) 重定向到同一个视图。这是因为我有一个侧面菜单,其中包含一个名为 "Influencers" 的选项卡,我希望此 link 和 "mysite.com" 都能正常工作。我什至接受了不使用 mysite。com/influencers 并尝试了 href="{% url '' %}" 之类的东西,但它也没有用。
这一行在我的 base.html 文件中导致错误:
<a href="{% url 'app1:influencers' %}" class="side_link"> >  Influencers</a>
这是我的观点:
class InfluencerList(LoginRequiredMixin, ListView):
model = Influencer
那是我的 urls.py 文件:
app_name = 'app1'
urlpatterns = [
path('', InfluencerList.as_view()),
path('influencers', InfluencerList.as_view()),
]
感谢任何帮助或建议。
您需要指定路径的名称:
app_name = 'app1'
urlpatterns = [
path('', InfluencerList.as_view()),
path('influencers', InfluencerList.as_view()<b>, name='influencers'</b>),
]
我觉得有点“奇怪”,你在两个不同的路径上使用完全相同的视图。最好只列出一次相同的视图(具有相同的参数等)。
编辑:您可以使用 RedirectView
[Django-doc] 让第一个路径重定向到第二个路径,例如:
from django.views.generic.base import <b>RedirectView</b>
app_name = 'app1'
urlpatterns = [
path('', <b>RedirectView.as_view(pattern_name='app1:influencers')</b>),
path('influencers', InfluencerList.as_view(), name='influencers'),
]