在Django Admin的自定义操作中,验证结束日期大于开始日期

在Django Admin的自定义操作中,验证结束日期大于开始日期,django,django-admin,django-admin-actions,Django,Django Admin,Django Admin Actions,我的Django管理员的save_相关操作中有一个start_date和end_date字段。当结束日期大于开始日期时,我想为结束日期分配一个错误 我一直在寻找文档,但没有找到关于这方面的示例。以下是我迄今为止所尝试的: 我的django管理员代码: @admin.register(models.Event) class EventAdmin(admin.ModelAdmin): ... def save_related(self, request, form, formsets, ch

我的Django管理员的save_相关操作中有一个start_date和end_date字段。当结束日期大于开始日期时,我想为结束日期分配一个错误

我一直在寻找文档,但没有找到关于这方面的示例。以下是我迄今为止所尝试的:

我的django管理员代码:

@admin.register(models.Event)
class EventAdmin(admin.ModelAdmin):
...
    def save_related(self, request, form, formsets, change):
        obj = form.instance
        # Check validations
        start_date = obj.start
        end_date = obj.end
        if end_date < start_date:
            msg = u"End date should be greater than start date."
            self._errors["end_date"] = self.error_class([msg])
            return
         ...
但此代码有以下错误:“EventAdmin”对象没有属性“error\u class”
如何修复此问题?

请提供一些您迄今为止尝试过的代码,好吗?看,我用一些代码更新了我的问题。我也有同样的错误,你解决了吗?@oshingc我在model.py文件的clean函数中使用了ValidationError,而不是admin.py从django.core.exceptions导入ValidationError def cleanself:如果end_dateclass CourseForm(forms.ModelForm): def clean(self): cleaned_data = super(CourseForm, self).clean() start_date = self.cleaned_data.get('start_date') end_date = self.cleaned_data.get('end_date') if end_date < start_date: raise forms.ValidationError("End date should be greater than start date.") return cleaned_data class CourseAdmin(admin.ModelAdmin): form = CourseForm