Python ';ContentCreateUpdateView';对象没有属性';模块id';
我正在学习这本书的教程 在我看到这里之前,一切都很好 当我单击包含下面视图链接的页面时,控制台返回下面的问题。 (在下面的HTML中,其链接为“管理内容”) 完全错误回溯Python ';ContentCreateUpdateView';对象没有属性';模块id';,python,django,python-3.x,django-views,mixins,Python,Django,Python 3.x,Django Views,Mixins,我正在学习这本书的教程 在我看到这里之前,一切都很好 当我单击包含下面视图链接的页面时,控制台返回下面的问题。 (在下面的HTML中,其链接为“管理内容”) 完全错误回溯 Traceback (most recent call last): File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, i
Traceback (most recent call last):
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/core/handlers/base.py", line 156, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/core/handlers/base.py", line 154, in _get_response
response = response.render()
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/response.py", line 106, in render
self.content = self.rendered_content
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/response.py", line 83, in rendered_content
content = template.render(context, self._request)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 171, in render
return self._render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/loader_tags.py", line 150, in render
return compiled_parent._render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/loader_tags.py", line 62, in render
result = block.nodelist.render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/defaulttags.py", line 512, in render
return self.nodelist.render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/defaulttags.py", line 209, in render
nodelist.append(node.render_annotated(context))
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/template/defaulttags.py", line 442, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/urls/base.py", line 90, in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/Users/macadmin/Documents/Django_wapps/welearn/lib/python3.7/site-packages/django/urls/resolvers.py", line 622, in _reverse_with_prefix
raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'module_content_list' with no arguments not found. 1 pattern(s) tried: ['module/(?P<module_id>[0-9]+)/$']
list.html
{% extends "base.html" %}
{% block title %}My Courses{% endblock %}
{% block content %}
<h1>My courses</h1>
<div class="module">
{% for course in object_list %}
<div class="course-info mt-5 ml-3">
<h3>{{ course.title }}</h3>
<p>
<a href="{% url 'core:course_edit' course.id %}">Edit</a>
<a href="{% url 'core:course_delete' course.id %}">Delete</a>
<a href="{% url 'core:course_module_update' course.id %}">Edit modules</a>
{% if course.modules.count > 0%}
<a href="{% url 'core:module_content_list' course.modules.first.id %}">Manage contents</a>
{% endif %}
</p>
</div>
{% empty %}
<p>You haven't created any courses yet.</p>
{% endfor %}
<p>
<a href="{% url 'core:course_create' %}" class="button">Create new course</a>
</p>
</div>
{% endblock %}
{%extends“base.html”%}
{%block title%}我的课程{%endblock%}
{%block content%}
我的课程
{对象列表%中的课程的百分比}
{{course.title}
{%如果course.modules.count>0%}
{%endif%}
{%empty%}
您尚未创建任何课程
{%endfor%}
{%endblock%}
url.py
urlpatterns = [
path('', views.ManagerCourseListView.as_view(), name='manage_course_list'),
path('create/', views.CourseCreateView.as_view(), name='course_create'),
path('<pk>/edit/', views.CourseUpdateView.as_view(), name='course_edit'),
path('<pk>/delete/', views.CourseDeleteView.as_view(), name='course_delete'),
path('<pk>/module/', CourseModuleUpdateView.as_view(), name='course_module_update'),
path('module/<int:module_id>/content/<model_name>/create/', views.ContentCreateUpdateView.as_view(),
name='module_content_create'),
path('module/<int:module_id>/content/<model_name>/<id>/', views.ContentCreateUpdateView.as_view(),
name='module_content_update'),
path('content/<int:id>/delete/', views.ContentDeleteView.as_view(), name='module_content_delete'),
path('module/<int:module_id>/', views.ModuleContentListView.as_view(), name='module_content_list'),
]
urlpatterns=[
路径(“”,views.ManagerCourseListView.as_view(),name='manage_course_list'),
路径('create/',views.CourseCreateView.as_view(),name='course_create'),
路径('/edit/',views.CourseUpdateView.as_view(),name='course_edit'),
路径('/delete/',views.CourseDeleteView.as_view(),name='course_delete'),
路径('/module/',CourseModuleUpdateView.as_view(),name='course'u module_update'),
路径('module//content//create/',views.ContentCreateUpdateView.as_view(),
name='module\u content\u create'),
路径('module//content//',views.ContentCreateUpdateView.as_view(),
name='module\u content\u update'),
路径('content//delete/',views.ContentDeleteView.as_view(),name='module_content_delete'),
路径('module/',views.ModuleContentListView.as_view(),name='module_content_list'),
]
如果有人曾经经历过,请帮我一把
我目前正在使用django 2.1和python 3.7
谢谢模块内容列表名的路径在哪里?@givejob我刚刚用上面请求的路径更新了整个url.py。请告诉我您是否能够解决它。course.modules.first.id包含值还是无值?当前为无,我刚刚用
{%如果course.modules.count>0%}
静止nothing@alasdair你有什么建议吗?模块内容列表名的路径在哪里?@givejob我刚刚用上面请求的路径更新了整个url.py。请告诉我你是否能够解决它。course.modules.first.id包含值还是无值?当前为无,我刚刚更新了你刚才在列表中提到的行.html,带有{%if course.modules.count>0%}
仍然nothing@alasdair你有什么建议吗?
urlpatterns = [
path('', views.ManagerCourseListView.as_view(), name='manage_course_list'),
path('create/', views.CourseCreateView.as_view(), name='course_create'),
path('<pk>/edit/', views.CourseUpdateView.as_view(), name='course_edit'),
path('<pk>/delete/', views.CourseDeleteView.as_view(), name='course_delete'),
path('<pk>/module/', CourseModuleUpdateView.as_view(), name='course_module_update'),
path('module/<int:module_id>/content/<model_name>/create/', views.ContentCreateUpdateView.as_view(),
name='module_content_create'),
path('module/<int:module_id>/content/<model_name>/<id>/', views.ContentCreateUpdateView.as_view(),
name='module_content_update'),
path('content/<int:id>/delete/', views.ContentDeleteView.as_view(), name='module_content_delete'),
path('module/<int:module_id>/', views.ModuleContentListView.as_view(), name='module_content_list'),
]