首页 > 解决方案 > 为什么我收到 NoReverseMatch 错误但未找到任何参数?

问题描述

错误:

NoReverseMatch at /leachers/11/donate/
反向为“捐赠”,未找到任何参数。尝试了 1 种模式:['leachers/(?P[0-9]+)/donate/$']

此处出错

视图.py

@login_required
def donate(request,pk):
    if request.method == 'POST':
        form = forms.UserDonateForm(request.POST)
        if form.is_valid():
            user = form.save()
            user.refresh_from_db()
            user.donator = request.user
            user.save()
            return redirect('leacher_list')
    else:
        form = forms.UserDonateForm()
    return render(request,'my_app/donation_form.html',{'form':form})

网址.py

from django.urls import path
from . import views
from .views import donate

urlpatterns = [
    path('',views.HomePageView.as_view(),name='home_page'),
    path('about/',views.AboutView.as_view(),name='about'),
    path('leachers/',views.LeacherListView.as_view(),name='leacher_list'),
    path('leachers/<int:pk>/donate/',donate,name='donate'),
]

在这里,我将 pk 分配给链接:

{% for member in leacher_list %}
        <h4>Name : {{ member.name }}</h4>
        <h5>Address : {{ member.address }}</h5>
        <h5>Location : {{ member.location }}</h5>
        <!--original href="donate" -->
        <a class="btn btn-primary" href="{% url 'donate' pk=member.pk %}" role="button">Donate</a>

我是 Django 的新手。

标签: djangodjango-viewsbackenddjango-urls

解决方案


app_name在 url 中的命名空间之前添加。我建议做这样的事情:

<a class="btn btn-primary" href="{% url 'my_app:donate' pk=member.pk %}" role="button">Donate</a>

这里我们考虑my_app的是app_name。请试试这个。


推荐阅读