Django:NoReverseMatch at/spacemissions/Organization/2/
当我尝试从列表视图访问详细视图时,我遇到以下错误 奇怪的是,有些细节视图有效,有些无效,我不明白问题出在哪里。例如,这里是pk=1的组织的详细视图 组织模式Django:NoReverseMatch at/spacemissions/Organization/2/,django,django-views,django-templates,Django,Django Views,Django Templates,当我尝试从列表视图访问详细视图时,我遇到以下错误 奇怪的是,有些细节视图有效,有些无效,我不明白问题出在哪里。例如,这里是pk=1的组织的详细视图 组织模式 class Organisation(models.Model): code = models.CharField(max_length=256, unique=True) name = models.CharField(max_length=256, null=True) english_name = mode
class Organisation(models.Model):
code = models.CharField(max_length=256, unique=True)
name = models.CharField(max_length=256, null=True)
english_name = models.CharField(max_length=256, null=True)
location = models.CharField(max_length=256, null=True)
country = models.ForeignKey('space_missions.Country',
on_delete=models.SET_NULL, null=True, blank=True)
longitude = models.FloatField(null=True)
latitude = models.FloatField(null=True)
parent_organisation = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True)
{% extends 'base.html' %}
{% block content %}
<h1>Organisation List</h1>
{% if organisation_list %}
<ul>
{% for organisation in organisation_list %}
<li>
<a href="{% url 'space_missions:organisation-detail' pk=organisation.pk %}">
{{ organisation.name }}
</a>
</li>
{% endfor %}
</ul>
{% else %}
<p>No organisation is stored in the database!</p>
{% endif %}
{% endblock %}
{% extends 'base.html' %}
{% block content %}
<div class="container">
<h1>{{ organisation.name }}'s details:</h1>
<ul>
<li><strong>Code: </strong> {{ organisation.code }}</li>
<li><strong>English Name: </strong> {{ organisation.english_name }}</li>
<li><strong>Location: </strong> {{ organisation.location }}</li>
<li><strong>Country: </strong>
<a href="{% url 'space_missions:country-detail' pk=organisation.country_id %}">
{{ organisation.country.name }}
</a>
</li>
<li><strong>Longitude: </strong> {{ organisation.longitude }}</li>
<li><strong>Latitude: </strong> {{ organisation.latitude }}</li>
<li>
<strong>Parent organisation: </strong>
<a href="{% url 'space_missions:organisation-detail' pk=organisation.parent_organisation_id %}">
{{ organisation.parent_organisation.name }}
</a>
</li>
</ul>
</div>
{% endblock %}
视图
class OrganisationDetail(generic.DetailView):
model = models.Organisation
class OrganisationList(generic.ListView):
model = models.Organisation
organization\u list.html
class Organisation(models.Model):
code = models.CharField(max_length=256, unique=True)
name = models.CharField(max_length=256, null=True)
english_name = models.CharField(max_length=256, null=True)
location = models.CharField(max_length=256, null=True)
country = models.ForeignKey('space_missions.Country',
on_delete=models.SET_NULL, null=True, blank=True)
longitude = models.FloatField(null=True)
latitude = models.FloatField(null=True)
parent_organisation = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True)
{% extends 'base.html' %}
{% block content %}
<h1>Organisation List</h1>
{% if organisation_list %}
<ul>
{% for organisation in organisation_list %}
<li>
<a href="{% url 'space_missions:organisation-detail' pk=organisation.pk %}">
{{ organisation.name }}
</a>
</li>
{% endfor %}
</ul>
{% else %}
<p>No organisation is stored in the database!</p>
{% endif %}
{% endblock %}
{% extends 'base.html' %}
{% block content %}
<div class="container">
<h1>{{ organisation.name }}'s details:</h1>
<ul>
<li><strong>Code: </strong> {{ organisation.code }}</li>
<li><strong>English Name: </strong> {{ organisation.english_name }}</li>
<li><strong>Location: </strong> {{ organisation.location }}</li>
<li><strong>Country: </strong>
<a href="{% url 'space_missions:country-detail' pk=organisation.country_id %}">
{{ organisation.country.name }}
</a>
</li>
<li><strong>Longitude: </strong> {{ organisation.longitude }}</li>
<li><strong>Latitude: </strong> {{ organisation.latitude }}</li>
<li>
<strong>Parent organisation: </strong>
<a href="{% url 'space_missions:organisation-detail' pk=organisation.parent_organisation_id %}">
{{ organisation.parent_organisation.name }}
</a>
</li>
</ul>
</div>
{% endblock %}
{%extends'base.html%}
{%block content%}
组织名单
{%if组织_列表%}
{对于组织中的组织,{u列表%}
-
{%endfor%}
{%else%}
数据库中未存储任何组织
{%endif%}
{%endblock%}
organization\u detail.html
class Organisation(models.Model):
code = models.CharField(max_length=256, unique=True)
name = models.CharField(max_length=256, null=True)
english_name = models.CharField(max_length=256, null=True)
location = models.CharField(max_length=256, null=True)
country = models.ForeignKey('space_missions.Country',
on_delete=models.SET_NULL, null=True, blank=True)
longitude = models.FloatField(null=True)
latitude = models.FloatField(null=True)
parent_organisation = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True)
{% extends 'base.html' %}
{% block content %}
<h1>Organisation List</h1>
{% if organisation_list %}
<ul>
{% for organisation in organisation_list %}
<li>
<a href="{% url 'space_missions:organisation-detail' pk=organisation.pk %}">
{{ organisation.name }}
</a>
</li>
{% endfor %}
</ul>
{% else %}
<p>No organisation is stored in the database!</p>
{% endif %}
{% endblock %}
{% extends 'base.html' %}
{% block content %}
<div class="container">
<h1>{{ organisation.name }}'s details:</h1>
<ul>
<li><strong>Code: </strong> {{ organisation.code }}</li>
<li><strong>English Name: </strong> {{ organisation.english_name }}</li>
<li><strong>Location: </strong> {{ organisation.location }}</li>
<li><strong>Country: </strong>
<a href="{% url 'space_missions:country-detail' pk=organisation.country_id %}">
{{ organisation.country.name }}
</a>
</li>
<li><strong>Longitude: </strong> {{ organisation.longitude }}</li>
<li><strong>Latitude: </strong> {{ organisation.latitude }}</li>
<li>
<strong>Parent organisation: </strong>
<a href="{% url 'space_missions:organisation-detail' pk=organisation.parent_organisation_id %}">
{{ organisation.parent_organisation.name }}
</a>
</li>
</ul>
</div>
{% endblock %}
{%extends'base.html%}
{%block content%}
{{organization.name}的详细信息:
- 代码:{{organization.Code}
- 英文名称:{{organization.English\u Name}
- 位置:{{organization.Location}
- 国家:
- 经度:{{organization.Longitude}
- 纬度:{{organization.Latitude}
-
母公司组织:
{%endblock%}
url.py
from django.urls import path
from . import views
app_name = 'space_missions'
urlpatterns = [
path('countries/', views.CountryList.as_view(), name='countries'),
path('country/<int:pk>/', views.CountryDetail.as_view(), name='country-detail'),
path('astronauts/', views.AstronautList.as_view(), name='astronauts'),
path('astronaut/<int:pk>/', views.AstronautDetail.as_view(), name='astronaut-detail'),
path('organisations/', views.OrganisationList.as_view(), name='organisations'),
path('organisation/<int:pk>/', views.OrganisationDetail.as_view(), name='organisation-detail'),
path('engines/', views.EngineList.as_view(), name='engines'),
path('engine/<int:pk>/', views.EngineDetail.as_view(), name='engine-detail'),
path('stages/', views.StageList.as_view(), name='stages'),
path('stage/<int:pk>/', views.StageDetail.as_view(), name='stage-detail'),
path('launchvehicles/', views.LaunchVehicleList.as_view(), name='launch-vehicles'),
path('launchvehicle/<int:pk>/', views.LaunchVehicleDetail.as_view(), name='launch-vehicle-detail'),
path('missions/', views.MissionList.as_view(), name='missions'),
path('mission/<int:pk>/', views.MissionDetail.as_view(), name='mission-detail'),
path('selections/', views.SelectionList.as_view(), name='selections'),
path('selection/<int:pk>/', views.SelectionDetail.as_view(), name='selection-detail')
]
从django.url导入路径
从…起导入视图
应用程序名称='空间任务'
URL模式=[
路径('countries/',views.CountryList.as_view(),name='countries'),
路径('country/',views.CountryDetail.as_view(),name='country-detail'),
路径('soutomans/',views.coutomanslist.as_view(),name='soutomans'),
路径('audion/',views.audionDetail.as_view(),name='audion-detail'),
路径('Organizations/',views.organizationList.as_view(),name='Organizations'),
路径('organization/',views.organizationdetail.as_view(),name='organization-detail'),
路径('engines/',views.EngineList.as_view(),name='engines'),
路径('engine/',views.EngineDetail.as_view(),name='engine-detail'),
路径('stages/',views.StageList.as_view(),name='stages'),
路径('stage/',views.StageDetail.as_view(),name='stage-detail'),
路径('launchvehicles/',views.LaunchVehicleList.as_view(),name='launch-vehicles'),
路径('launchvehicle/',views.LaunchVehicleDetail.as_view(),name='launch-vehicle-detail'),
路径('missions/',views.MissionList.as_view(),name='missions'),
路径('mission/',views.MissionDetail.as_view(),name='mission-detail'),
路径('selections/',views.SelectionList.as_view(),name='selections'),
路径('selection/',views.SelectionDetail.as_view(),name='selection-detail')
]
当父组织
为无
时,您的详细信息页面无法找到具有pk=None的组织详细信息的url
<a href="{% url 'space_missions:organisation-detail' pk=organisation.parent_organisation_id %}">
{{ organisation.parent_organisation.name }}
</a>
用if块包装代码
{% if organisation.parent_organisation_id %}
<a href="{% url 'space_missions:organisation-detail' pk=organisation.parent_organisation_id %}">
{{ organisation.parent_organisation.name }}
</a>
{% endif %}
{%if organization.parent\u organization\u id%}
{%endif%}
谢谢!这同样适用于国家外键,不是吗?@ErosFabrici是的,同样适用于国家外键。