我是Django的新手并且已经完成了first Django App教程。我理解了各个部分,但无法形成完整的解决方案。
我的要求是在管理员的模型更改列表页面中添加自定义按钮,将其重定向到确认页面,在确认时执行功能,然后重定向到具有执行状态的更改列表页面。
我添加了自定义按钮,但之后丢失了。 目前这就是我在做的事情:
更改了管理类列表模板
class ReconciliationAdmin(admin.ModelAdmin):
change_list_template = 'SalesReconciliation/change_list.html'
这是我的更改列表模板:
{% extends "admin/change_list.html" %}
{% load i18n admin_static %}
{% block object-tools-items %}
{{ block.super }}
<li>
<a href={% url 'admin:reconcileConfirm'%} class="btn btn-high btn-success">Run Reconciliation</a>
</li>
{% endblock %}
更改主应用中的 urls.py ,如下所示:
urlpatterns = [
url(r"^reconcileConfirm/", include("SalesReconciliation.urls")),
]
更改了子应用中的 urls.py ,如下所示:
urlpatterns = [
url(r'^reconcileConfirm/', views.ReconcileConfirm, name='ReconcileConfirm')
]
在子应用的 views.py 中添加了以下内容:
def ReconcileConfirm(request):
return HttpResponse("..something")
我希望这会像:
点击“运行对帐”链接 - &gt;主要urls.py路由到孩子 urls.py - &gt; child urls.py路由到views.py - &gt;视图中的函数py 执行一些操作
但我收到以下错误:
> NoReverseMatch at / SalesReconciliation / reconciliation / Reverse for&#39; reconcileConfirm&#39;未找到。 &#39; reconcileConfirm&#39;不是有效的视图函数或模式名称。请求方法:GET
请求网址:http://127.0.0.1:8000/SalesReconciliation/reconciliation/
Django版本:2.0.4
异常类型:NoReverseMatch
异常值:反向&#39; reconcileConfirm&#39;没找到。
&#39; reconcileConfirm&#39;不是有效的视图函数或模式名称。
此外,我想知道这是否是正确的方法。
答案 0 :(得分:0)
在你的模板中:
{% url 'admin:reconcileConfirm'%}
在urls.py中:
urlpatterns = [
url(r'^reconcileConfirm/', views.ReconcileConfirm, name='ReconcileConfirm')
]
请注意,ReconcileConfirm
与reconcileConfirm
不同。这可能是为了实现您想要的目标而修复的第一个错误。