在我的Django项目中,我有一个需要确认页面的管理员操作。我参考了delete_selected操作,但它不起作用。这是我的代码。
我的admin.py的一部分
def my_action(modeladmin, request, queryset):
if request.POST.get('post'):
print "Performing action"
# action code here
return None
else:
return TemplateResponse(request, "admin/my_action_confirmation.html")
管理员/我的操作确认页面.html
<form action="" method="post">{% csrf_token %}
<div>
<input type="hidden" name="post" value="yes" />
<input type="hidden" name="action" value="my_action" />
<input type="submit" value="Confirm" />
</div>
</form>
这基本上是有效的。我可以到达确认页面,但如果我点击“确认”,我只会回到原始页面。动作代码部分永远不会被执行。事实上,我的my_action函数没有第二次被调用。那么,我如何告诉django,在我点击确认后应该再次调用my_action函数?
name="{{ action_checkbox_name }}"
的<input>
,否则确认提交将被忽略。您可以在 ModelAdmin.changelist_view 的源代码 中看到这一点。请注意,request.current_app
行不是必需的。 - djvg