2013-07-15 2 views
1

Я получаю ошибку NoReverseMatch в моем рендеринге шаблона.Ошибка Django NoReverseMatch с действительной конфигурацией url и представлениями

Вот соответствующий шаблон:

<ul id='comments'> 
{% for comment in comments %} 
<li class='comment'> 
    <img class='gravatar' src='{{ comment.User|gravatar:50}}' alt='{{ comment.User.get_full_name }}' \> 
    <a href='{% url 'dashboard.views.users.profile' comment.User.id %}' class='user'> 
     {{comment.User.get_full_name}} 
    </a> 

    <p class='comment-timestamp'>{{comment.created}}</p> 
    <p class='comment-content'>{{comment.comment|striptags}}<br> 
    {% if user == comment.user or user = report.user %} 
    <a href="{% url 'mokr.delete_comment' comment.id %}">Delete</a></p> 
    {% endif %} 
</li> 

{% endfor %} 

ошибка дается на 'mokr.delete_comment' линии

URL-адрес Вот вид:

def delete_comment(request, comment_id): 

    comment = get_object_or_404(ReportComment, id = comment_id) 
    report = comment.MgmtReport 
    comment.delete() 

    project = report.project 

    return HttpResponseRedirect(reverse('show_post', args=(project.url_path, report.id))) 

и раздел URLs. py

(r'^mokr/comment/(\d+)/delete/$', mokr.delete_comment), 
url(r'^mokr/show/([^\.]*)/(\d+)/$', mokr.show, name='show_post'), 
+0

Вы никогда не назвал свой адрес, вам нужно 'имя = 'Delete-comment'' в вашем шаблоне URL. –

ответ

0

Измените свой urls.py, чтобы добавить аргумент name в ваш URL-адрес для удаления.

(r'^mokr/comment/(\d+)/delete/$', mokr.delete_comment, name="delete_comment"), 

Тогда попробуйте использовать это в своем шаблоне;

{% url 'delete_comment' comment.id %} 

См naming URL patterns и reverse resolution of URLs

+1

Вот и все! Большое спасибо за Вашу помощь – user2562438

1

Вы передаете два аргумента шаблону в своем обращении для обратного просмотра в представлении delete_comment; args=(project.url_path, report.id), но ваши списки urls.py;

(r'^mokr/comment/(\d+)/delete/$', mokr.delete_comment), 

Какой может принимать только один параметр.

+0

В этот момент я вызываю обратную ссылку на другую функцию, функцию «показать отчет». Я отредактирую, чтобы добавить этот раздел urls.py. Если я не понимаю, как работает обратный метод? – user2562438

+0

@ user2562438 Извините! Является ли mokr пространством имен? Возможно, попробуйте '{% url 'mokr: delete_comment' comment.id%}'? –

+0

Цель состоит в том, что у меня есть отчет, в котором есть комментарий к нему. Если кнопка удаления комментария удалена, комментарий удаляется, затем выполняется обратный вызов метода show, возвращающий пользователя на страницу сообщения. – user2562438

Смежные вопросы