我已经创建了一个带有几个字段的简单模型Product,然后转到admin.py
。我已经注册了Product
,将一些字段设置为list_editable
,并创建了一个新的操作duplicate
。
def duplicate(modeladmin, request, queryset):
number = int(request.POST['number'])
product = queryset.first()
for i in xrange(number):
product.id = None
product.save()
class DuplicateActionForm(ActionForm):
number = forms.IntegerField()
class ProductAdmin(admin.ModelAdmin):
list_display = ('id','name','color','memory','ga_url','gs_url',)
list_editable = ('color','memory','name','ga_url','gs_url',)
action_form = DuplicateActionForm
# actions = [duplicate,]
admin.site.register(Product,ProductAdmin)
当ProductAdmin
类的actions
属性未被注释时,我可以复制对象。问题是我不能删除它们。当我选中row并选择delete selected
时,它显示:No action selected
。
这是由行引起的:
action_form = DuplicateActionForm
因为在注释action_form = DuplicateActionForm
之前,如果actions = [duplicate,]
被注释,我就不能正确删除对象
你知道问题出在哪里吗?
发布于 2018-05-28 14:55:23
您应该在自定义表单域中添加required=False
。在那之后,一切都将按预期工作。
class DuplicateActionForm(ActionForm):
number = forms.IntegerField(required=False)
https://stackoverflow.com/questions/42374193
复制相似问题