嗨,我正在尝试将用户发送回html文件,但是当我在视图函数中使用以下代码时:
def delete_topic(request, topic_id):
""" Delete Topic """
topic = Topic.objects.get(id=topic_id)
topic.delete()
return HttpResponseRedirect(reverse('blogging_logs:topics'))
它给了我一个NoReverseMatch错误,我似乎不知道为什么。我注意到我的主题视图功能需要category_id,但是我不确定如何传递多个ID。
这是我的主题视图
def topics(request, category_id):
"""Show all topics for a single category"""
category = Category.objects.get(id=category_id) # get category that was requested
topics = category.topic_set.all() # get all topics associated with category that was requested
context = {'category': category, 'topics': topics}
return render(request, 'blogging_logs/category.html', context)
这是正在使用delete_topics def的html页面。 topic.html
{% block content %}
<h3>{{ topic }}</h3>
{% for entry in entries %}
<p>{{ entry.text|linebreaks }}</p>
{% empty %}
<li>No entry entered yet!</li>
{% endfor %}
<a href="{% url 'blogging_logs:entry' topic.id %}"> Add entry </a>
<a href="{% url 'blogging_logs:delete_topic' topic.id %}">Delete Topic</a>
{% endblock content %}
我试图在topic.html中的URL( delete_topic )中添加第二个ID( category.id ),但这给了我一个错误。我假设我的错误是它没有获得将用户送回主题页面所需的类别ID。
答案 0 :(得分:2)
首先,您不需要多个ID,只需要类别ID。
第二,您需要将其添加到Python代码而不是模板中:
return HttpResponseRedirect(reverse('blogging_logs:topics', args=(topic.category_id)))