首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django deleteview视图NoReverseMatch位于

django deleteview视图NoReverseMatch位于
EN

Stack Overflow用户
提问于 2016-08-01 06:08:59
回答 1查看 462关注 0票数 0

我是新来姜戈的。在构建应用程序时,我一直收到NoReverseMatch。我想知道是否有人能给我指出正确的方向,指出我哪里错了。

该应用程序有场景,每个场景都有关联的电子邮件。当我点击一个场景时,应用程序会显示与该场景关联的电子邮件,允许用户删除/编辑每个关联的电子邮件。

当我尝试删除一封电子邮件时,如果我将success_url设置为email : NoReverseMatch,我会收到一个索引,该索引为该场景生成了电子邮件列表。如果我将success_url更改为主屏幕(场景:索引),它可以工作,但是让用户转到主屏幕列出每次删除的场景并不理想。

以下是我的电子邮件数据源的url模式

代码语言:javascript
运行
复制
# emails
# /scenarios/<scenarioid>/email
url(r'^(?P<pk>[0-9]+)/email/$', views.EmailListView.as_view(), name='email-index'),
# /scenarios/12/email/<emailid>/delete
url(r'^([0-9]+)/email/(?P<pk>[0-9]+)/delete/$', views.EmailDelete.as_view(), name='email-delete'),

这是我的视图文件:

代码语言:javascript
运行
复制
class EmailDelete(DeleteView):
    model = Email
    success_url = reverse_lazy('scenarios:email-index')

class EmailListView(generic.ListView):
    model = Email
    template_name = 'scenarios/emailindex.html'
    context_object_name = 'scenario_emails'
    print "in email list view"

    def get_queryset(self):
        return Email.objects.filter(scenario=self.kwargs['pk'])

模板如下:

代码语言:javascript
运行
复制
<td><form action="{% url 'scenarios:email-delete' email.id %}" method="post">
{% csrf_token %}
EN

回答 1

Stack Overflow用户

发布于 2016-08-01 12:14:12

email-delete URL有两个捕获组-一个未命名的([0-9]+)和一个命名的(?P<pk>[0-9]+),但在url标记中只传递位置参数- email.id。您必须从url模式中删除第一个组,或者将两个参数传递给url标记。类似这样的{% url 'scenarios:email-delete' scenario.id pk=email.id %}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38688793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档