Почему не renderiza контент моего шаблона?

Я работаю в проекте, но меня бросает это сообщение ошибки и я не встречаю недостатка:

Error during template rendering

In template /home/didier/Documents/Projects/inventory/inv/templates/index.html, error at line 11  
Reverse for 'elements.views.element_detail' with arguments '()' and keyword arguments '{u'pk': 1}' not found. 0 pattern(s) tried: []

Views.py:

def element_detail(request, pk):
    element = get_object_or_404(Element, pk=pk)
    template = loader.get_template('element_detail.html')
    context = {
        'element': element
    }
    return HttpResponse(template.render(context, request))

Urls.py:

from django.conf.urls import url
from . import views
urlpatterns = [
    url(r'^element$', views.hello, name='hello'),
    url(r'^detail/(?P<pk>[0-9]+)/$', views.element_detail, name='detail'),
]

Index.html:

{% extends 'base.html' %}
{% load staticfiles %}
{% block page_title %}
    Element list | RegiX
{% endblock %}
{% block content %}
    <h2>Hello</h2>
    {% for el in element %}
        <li>
            {{ el.manufacturer }} ::
            <a href="{% url 'elements.views.element_detail' pk=el.pk %}">
            {{ el.model }}
            </a>
            {{ el.date_purchase }} ::
            <img src="{{ el.image.url }}">
        </li>
    {% endfor %}
{% endblock %}
6
задан 04.04.2016, 15:21
2 ответа

Идея об обратном разрешении унифицированных указателей ресурса состоит в том, чтобы ты именно использовал в, сдержись имя, которое ты определил для главного файла твоего унифицированного указателя ресурса посредством параметра name в функцию url ().

Следовательно, чтобы использовать обратное разрешение в templates, необходимо, чтобы ты использовал имя, которое ты определил. В этом случае он был бы:

<a href="{% url 'detail' pk=el.pk %}">

Имей в виду, что, если ты определил один namespace для твоего приложения необходимо, чтобы ты это включил в имя. Если ты использовал что-то как это:

urlpatterns = [
    # ...
    url(r'^inv/', include('inv.urls', namespace='inv')),
]

Ты был бы должен использовать тогда:

<a href="{% url 'inv:detail' pk=el.pk %}">

Если ты не используешь namespace я рекомендую тебе делать это таким ты избегаешь того, чтобы существовали конфликты между унифицированными указателями ресурса приложений.

Ссылки

2
ответ дан 24.11.2019, 14:39

Она lГ-nea 11, которые показывают ошибку внутри тебя, index.html:

 <a href="{% url 'elements.views.element_detail' pk=el.pk %}">

Ты Определяешь в тебе Urls.py в urlpatterns главный файл:

 url(r'^detail/(?P<pk>[0-9]+)/ 

следовательно ты должен меняться в:

<a href="{% url 'elements.detail' pk=el.pk %}">
, views.element_detail, name='detail'),

следовательно ты должен меняться в:

<a href="{% url 'elements.detail' pk=el.pk %}">
1
ответ дан 24.11.2019, 14:39

Теги

Похожие вопросы