2017-01-13 2 views
0

Ich habe versucht herauszufinden, warum ich Probleme damit habe. Alles scheint in Ordnung zu sein, und ich habe keine Probleme damit, dass andere Urls umkehren. Wenn ich die URL manuell eingebe, kommt die Seite gut an.Django Reverse Match Probleme

Dies ist der Template-Tag, das die Probleme verursacht: {% url 'schedule:calendar' %}

Hier ist urls.py:

app_name = 'schedule' 
urlpatterns = [ 
    url(r'^$', login_required(views.CalendarView.as_view(), login_url='/login/'), name='calendar'), 
] 

Ich glaube nicht, es ist notwendig, aber meine Ansichten Datei hat dies nur darin:

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 

ich sehe nicht, Konflikte überhaupt zu nennen, aber wenn ich {% url 'schedule:calendar' %} in meiner Vorlage setzen, überall, wirft er den Fehler, auch wenn das der onl ist y was in der Vorlagenseite. Hier

ist der Fehler:

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: [] 
+1

Können Sie Ihre Debug-Informationen für Muster 'bestellen (nur die falsche URL drücken und Django wird angezeigt in "debuggen" es für Sie)? –

+0

Teilen Sie Ihre Root 'urls.py'. – utkbansal

+0

Wie @utkbansal erwähnt, was ist Ihre Root-URL conf? Stellen Sie sicher, dass Sie den richtigen Namespace angegeben haben – karthikr

Antwort

0

Can you post your debug information for patterns' order (just hit the wrong url and Django will display in "debug on" it for you) ? – Artem Bernatskyi

Dank Artem Bernatskyi Kommentar, ich es herausgefunden. Ich habe eine API für die Daten, und ich hatte einen Namensraumkonflikt in der Datei urls.py für diese API. Es hatte app_name='schedule' drin. Ich habe es umbenannt und alles funktioniert jetzt gut.

Für alle, die das gleiche Problem haben, könnte es am schnellsten sein, wenn Sie nur Ihren gesamten Code nach den Namen durchsuchen, die Sie umkehren möchten. Stellen Sie sicher, dass sie nicht in einer anderen urls.py-Datei erscheinen.

Danke Artem.