проблемы обратного матча django

Я пытаюсь понять, почему у меня проблемы с этим. Все, кажется, в порядке, и у меня нет проблем с другими URL-адресами. Когда я ввожу URL вручную, страница появляется нормально.

Это тег шаблона, который вызывает проблемы: {% url 'schedule:calendar' %}

Вот urls.py:

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

Я не думаю, что это необходимо, но в моем файле views есть только это:

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

1 ответ

  1. Можете ли вы опубликовать отладочную информацию для порядка шаблонов (просто нажмите
    неверный url и Django отобразится в» debug on » it for you)? – Артем
    Бернацкий

    Благодаря комментарию Артема Бернацкого я все понял. У меня есть API для данных, и у меня был конфликт пространства имен в urls.py файл для этого api. Он был app_name='schedule'в нем, а также. Я переименовал его, и теперь все работает хорошо.

    Для тех, у кого есть такая же проблема, это может быть быстрее, если вы просто выполните поиск по всему коду для имен, которые вы пытаетесь обратить матч. Убедитесь, что они не появляются в другом urls.py файл.

    Спасибо Артему.