簡體   English   中英

具有有效的url配置和視圖的Django NoReverseMatch錯誤

[英]Django NoReverseMatch error with valid url config and views

我的模板渲染中出現NoReverseMatch錯誤。

這是相關的模板:

<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 %}

該錯誤在url'mokr.delete_comment'行中給出

這是視圖:

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'),

您要在delete_comment視圖中的反向調用中向模板傳遞兩個參數; args=(project.url_path, report.id)但您的urls.py列出了;

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

只能接受一個參數。

更改您的urls.py,以將name參數添加到您的刪除評論網址中。

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

然后嘗試在模板中使用它;

{% url 'delete_comment' comment.id %}

請參閱命名URL模式URL的 反向解析

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM