Python django反向匹配问题
我一直在想我为什么会有这样的问题。一切似乎都很好,我对其他URL没有问题。当我手动输入URL时,页面显示良好 这是导致问题的模板标记:Python django反向匹配问题,python,django,Python,Django,我一直在想我为什么会有这样的问题。一切似乎都很好,我对其他URL没有问题。当我手动输入URL时,页面显示良好 这是导致问题的模板标记:{%url'计划:日历“%} 以下是URL.py: app_name = 'schedule' urlpatterns = [ url(r'^$', login_required(views.CalendarView.as_view(), login_url='/login/'), name='calendar'), ] 我认为没有必要,但我的视图文件中
{%url'计划:日历“%}
以下是URL.py:
app_name = 'schedule'
urlpatterns = [
url(r'^$', login_required(views.CalendarView.as_view(), login_url='/login/'), name='calendar'),
]
我认为没有必要,但我的视图文件中只有以下内容:
class CalendarView(TemplateView):
template_name = 'schedule/index.html'
def get_context_data(self, **kwargs):
context = super(CalendarView, self).get_context_data(**kwargs)
context['template'] = 'calendar_view'
return context
我根本看不到命名冲突,但当我将{%url'schedule:calendar'%}
放在模板中的任何位置时,它会抛出错误,即使这是模板页面中唯一的内容
以下是错误:
Environment:
Request Method: GET Request URL: http://127.0.0.1:8000/schedule/
Django Version: 1.10.3 Python Version: 3.5.2 Installed Applications: ['footables', 'floppyforms', 'djangobower', 'custom_user', 'bootstrap3_datetime', 'widget_tweaks', 'schedule.apps.ScheduleConfig', 'customers.apps.CustomersConfig', 'employees.apps.EmployeesConfig', 'jobs.apps.JobsConfig', 'frontend.apps.FrontendConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'mptt'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']
Template error: In template /home/poduck/PycharmProjects/mobileautorepair/schedule/templates/schedule/index.html, error at line 0 Reverse for '' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 1 : {% extends 'frontend/base.html' %}{% load staticfiles %}{% block style %} 2 : <link rel='stylesheet' href='{% static 'fullcalendar/dist/fullcalendar.min.css' %}'/>{% endblock %} 3 : {% block title %}Schedule{% endblock %} 4 : {% block body %} 5 : <div class="container"> 6 : <div id="calendar"></div> 7 : </div> 8 : {% endblock %} 9 : {% block script %} 10 : <script src="{% static 'fullcalendar/dist/fullcalendar.min.js' %}"></script>
Traceback:
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
39. response = get_response(request)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
217. response = self.process_exception_by_middleware(e, request)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
215. response = response.render()
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/response.py" in render
109. self.content = self.rendered_content
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/response.py" in rendered_content
86. content = template.render(context, self._request)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/backends/django.py" in render
66. return self.template.render(context)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/base.py" in render
208. return self._render(context)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/loader_tags.py" in render
174. return compiled_parent._render(context)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/template/defaulttags.py" in render
439. url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/urls/base.py" in reverse
91. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix,
*args, **kwargs)))
File "/home/poduck/virtualpython3/lib/python3.5/site-packages/django/urls/resolvers.py" in _reverse_with_prefix
392. (lookup_view_s, args, kwargs, len(patterns), patterns)
Exception Type: NoReverseMatch at /schedule/ Exception Value: Reverse for '' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
环境:
请求方法:获取请求URL:http://127.0.0.1:8000/schedule/
Django版本:1.10.3 Python版本:3.5.2已安装的应用程序:['footables'、'floppyforms'、'Djangbower'、'custom_user'、'bootstrap3_datetime'、'widget_tweaks'、'ScheduleConfig'、'customers.apps.CustomerConfig'、'employees.apps.JobsConfig'、'frontend.apps.FrontendConfig'、'django.contrib.admin'、'django.auth'、'django.contrib.contenttypes'、'django.contrib.sessions“,”django.contrib.messages“,”django.contrib.staticfiles“,”rest_framework“,”mptt“]安装的中间件:['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware''django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.AuthenticationMiddleware.AuthenticationMiddleware','django.messages.middleware.messages.MessageMiddleware','django.middleware。XFrameOptionsMiddleware']
模板错误:在Template/home/poduck/PycharmProjects/mobileAutorerepair/schedule/templates/schedule/index.html中,找不到带参数“()”和关键字参数“{}”的“”的第0行反向错误。尝试了0个模式:[]1:{%extends'frontend/base.html%}{%load staticfiles%}{%block style%}2:{%endblock%}3:{%block title%}计划{%endblock%}4:{%block body%}5:6:7:8:{%endblock%}9:{%block script%}10:
回溯:
文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/core/handlers/exception.py”
39.响应=获取响应(请求)
响应中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/core/handlers/base.py”
217.response=self.process\u异常\u由\u中间件(e,请求)
响应中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/core/handlers/base.py”
215.response=response.render()
render中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/response.py”
109.self.content=self.rendered\u content
呈现内容中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/response.py”
86.content=template.render(上下文、自请求)
render中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/backends/django.py”
66.返回self.template.render(上下文)
render中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/base.py”
208.返回自渲染(上下文)
文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/base.py”在_render中
199.返回self.nodelist.render(上下文)
render中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/base.py”
994.bit=node.render_注释(上下文)
render_注释中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/base.py”
961.返回self.render(上下文)
render中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/loader_tags.py”
174.返回编译的\u父对象。\u呈现(上下文)
文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/base.py”在_render中
199.返回self.nodelist.render(上下文)
render中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/base.py”
994.bit=node.render_注释(上下文)
render_注释中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/base.py”
961.返回self.render(上下文)
render中的文件“/home/poduck/virtualpython3/lib/python3.5/site packages/django/template/defaulttags.py”
url=reverse(视图名称,args=args,kwargs=kwargs,当前应用程序=当前应用程序)
文件“/home/poduck/virtualpython3/lib/python3.5/site-packages/django/url/base.py”的格式相反
91.返回强制_文本(iri_至_uri)(解析器._反向_,带_前缀)(视图,前缀,
*args,**kwargs)))
文件“/home/poduck/virtualpython3/lib/python3.5/site-packages/django/url/resolvers.py”位于带前缀的\u-reverse\u中
392.(查找视图、参数、kwargs、len(模式)、模式)
异常类型:/schedule/Exception值处的NoReverseMatch:找不到参数为“()”且关键字参数为“{}”的“”的反转。尝试了0个模式:[]
您可以发布模式顺序的调试信息吗(只需点击 错误的url和Django将显示在“为您调试”中)-Artem 贝尔纳茨基 多亏了Artem Bernatskyi的评论,我找到了答案。我有一个用于数据的API,该API的URL.py文件中有一个名称空间冲突。它也有
app\u name='schedule'
。我重命名了它,现在一切正常
对于任何有相同问题的人来说,如果您只需在所有代码中搜索您要反向匹配的名称,这可能是最快的。请确保它们不会出现在另一个URL.py文件中
谢谢你,Artem。你能为模式的顺序发布你的调试信息吗(只需点击错误的url,Django就会为你在“调试”中显示)?分享你的root
url.py