gpt4 book ai didi

django - 在管理员中对 list_editable 字段进行自定义验证

转载 作者:行者123 更新时间:2023-12-05 08:44:31 25 4
gpt4 key购买 nike

我有一个带有自定义验证的管理表单。一些表单域通过 list_editable 显示在 ListView 中。当我通过 ListView 修改这些字段时,自定义验证不会启动。不过,当我使用常规更改表单时它确实有效。所以问题是如何验证通过“change_list”页面所做的更改。

代码可能会更清楚

class ProjectForm(ModelForm):
class Meta:
model = Project
def clean(self):
print "validating!"
data = self.cleaned_data
if data.get('on_frontpage') and not data.get('frontpage_image'):
raise ValidationError('To put a project on the frontpage you must \
specify a "Frontpage image" first.')
return data

class ProjectAdmin(AdminImageMixin, DisplayableAdmin, SortableAdmin):
form = ProjectForm
...
list_editable = ("status", "on_frontpage",)
list_display = ("title", "status", "on_frontpage")

谢谢!

最佳答案

找到了。可以通过覆盖 ModelAdmin 中的“get_changelist_formset”方法来指定“change_list”页面上使用的表单: https://code.djangoproject.com/browser/django/trunk/django/contrib/admin/options.py#L524

关于django - 在管理员中对 list_editable 字段进行自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8598852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com