我想自定义我的 django 管理操作。我的目标是做出一个可以更新选定对象的操作,但要更新的不仅仅是一个模型或一个字段。所以我想我应该写不止一个动作,尽管这些代码非常相似。我的问题是如何编写这些动作,考虑代码重用。
例如,函数 update_module(modeladmin, request, queryset) 实现如下操作,
def update_module(modeladmin, request, queryset):
...
form = module_form(request.POST)
if form.is_valid():
one = form.cleaned_data['module']
...
....
admin.site.add_action(update_module)
现在我需要编写另一个动作,如下所示,
def update_src(modeladmin, request, queryset):
...
form = src_form(request.POST)
if form.is_valid():
one = form.cleaned_data['src']
...
....
admin.site.add_action(update_src)
如我们所见,这两个动作非常相似。是否有一些方法可以重用更多代码。也许应该使用装饰器?