python - NoReverseMatch 尽管有以下示例
问题描述
我对 Django 相当陌生——在网上学习了许多示例和教程——我已经制作了一段时间的各种模型。我遇到了一个错误:
NoReverseMatch at /Organisation/organisations Reverse for 'Organisation' not found. 'Organisation' is
not a valid view function or pattern name.'
Request Method: GET Request
URL: http://127.0.0.1:8000/Organisation/organisations Django
Version: 3.0
Exception Type: NoReverseMatch
Exception Value: Reverse for 'Organisation' not found. 'Organisation' is not a valid view
function or pattern name.
我正在使用的代码的详细信息如下:
def get_absolute_url(self):
#Returns the url to access a detail record for organisation.
return reverse('Organisation.views.OrganisationDetail', args=[str(self.Form_Field_OrgID)])
我的相关模型 -
Form_Field_OrgID = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
Form_Field_OrgName = models.CharField(max_length=100, help_text='Enter Organisation Name', verbose_name = "Organisation Name")
Form_Field_OrgAddr = models.CharField(max_length=50, help_text='Enter Organisation Address', verbose_name = "Organisation Address")
Form_Field_OrgAddr2 = models.CharField(max_length=50, help_text='Enter Organisation Address', verbose_name = "Organisation Address")
Form_Field_OrgAddr3 = models.CharField(max_length=50, help_text='Enter Organisation Address', verbose_name = "Organisation Address")
Form_Field_OrgAddr4 = models.CharField(max_length=50, help_text='Enter Organisation Address', verbose_name = "Organisation Address")
Form_Field_OrgCountry = models.CharField(max_length=250, help_text='Select Organisation Country', verbose_name = "Organisation Country")
Form_Field_OrgPcode = models.CharField(max_length=10, help_text='Enter Organisation Post Code', verbose_name = "Organisation Address")
Form_Field_OrgEmail = models.EmailField(max_length=254, help_text='Enter Organisation Email', verbose_name = "Organisation Email Address")
Form_Field_OrgPhone = models.CharField(max_length=12, help_text='Enter Organisation Phone Number', verbose_name = "Organisation Phone Number")
Form_Field_OrgWebAddr = models.URLField(max_length=250, help_text='Enter Organisation Web Address', verbose_name = "Organisation Web Address")
Form_Field_OrgVisible = models.BooleanField ( help_text='Is This Organisation Visable', verbose_name = "Show Organisation")
Form_Field_OrgAddedBy = models.CharField(max_length=200, help_text='Who is Enter the Information', verbose_name = "Added By")
Form_Field_OrgDateAdded = models.DateTimeField(default=datetime.now, verbose_name = "Date Added")
Form_Field_OrgUserDefined = models.CharField(max_length=200, help_text='Enter any other Details', verbose_name = "Organisation Notes")
我的相关视图.py
from django.shortcuts import render
from django.db import models
from Organisation.models import Organisation, Departments, OrgDrtRpt
from django.views import generic
def index(request):
return render(request, 'index.html')
class OrganisationList(ListView):
model = Organisation
context_object_name ='all_organisations'
class OrganisationDetail(DetailView):
model = Organisation
context_object_name ='organisation_detail'
My Urls.py
from django.urls import path
from . import views
from django.conf.urls.static import static
app_name ='Organisation'
urlpatterns = [
path('list/', OrganisationList.as_view()),
path('details/<uuid:pk>', OrganisationDetail.as_view(), name ='organisation_detail'),
]
我的组织列表.html
{% extends 'baseNotLoggedIn.html' %}
{% block title %}Organisation Home {% endblock title %}
{% block nav-style %}mkt-nav{% endblock nav-style %}
{% block content %}
{% if organisation_list %}
<h1>All Organisations total ={{num_Organisations}}</h1>
<ul>
{% for Organisation in organisation_list %}
<li>
<a href="{{Organisation.get_absolute_url}}">{{Organisation.Form_Field_OrgName}}</a>({{Organisation.Form_Field_OrgAddr}}) <p>There are some</p>
</li>
{% endfor %}
{% else %}
<p> There are no organisations available </p>
{%endif%}
{# Hero Section #}
{# Main Section #}
{% endblock content %}
如果我将 get_absolute_url 更改为返回渲染,则列表视图可以正常工作....但我仍然收到无反向匹配错误
解决方案
您需要包含命名空间:
reverse('Organisation:Organisation', kwargs={'pk':self.pk})
旁注,这是 Django 行业标准来蛇形 URL 名称:
reverse('organisation:organisation', kwargs={'pk':self.pk})
推荐阅读
- php - Laravel 返回“SQLSTATE[HY000]:一般错误:1364 字段‘密码’没有默认值”
- python - Python 包中的子文件夹在安装时不可见
- java - 将eclipse项目导出为.exe文件?
- angular - ngx 数据表向右移动列(添加填充)
- reactjs - 添加带有样式的类没有任何作用 - NextJS
- javascript - 我正在尝试使用 queryselectorall 选择多个元素,但它似乎不起作用,我不知道为什么
- java - 应用程序找不到文件夹
- php - Vanilla PHP api 只允许 POST 请求
- android - dagger.internal.codegen.ComponentProcessor 无法处理此类,因为并非所有依赖项都可以解决
- html - 为什么我的 CSS 动画会消耗这么多资源?