我开发了一个基于 Django 管理站点的工具(内部使用)。
我有模型验证器,它工作得很好,但是为了进行更复杂的验证,我试图覆盖 admin.py 中的 clean() 方法
我的 admin.py 看起来像这样:
from django.contrib import admin
from .models import Provider, Employer, Person, Learnership, Qualification, Unit_Standard
from django import forms
class ProviderForm(forms.ModelForm):
class Meta:
model = Provider
fields = 'all'
def clean(self):
provider_start_date = self.cleaned_data.get('provider_start_date')
provider_end_date = self.cleaned_data.get('provider_end_date')
if provider_start_date > provider_end_date:
raise forms.ValidationError("Start date can't be after end date")
return self.cleaned_data
Run Code Online (Sandbox Code Playgroud)
admin.site.register(Provider)
Run Code Online (Sandbox Code Playgroud)
提供者模型的 models.py:
class Provider(models.Model):
... lots of stuff here ...
provider_start_date = models.DateField()
provider_end_date = models.DateField(blank=True, null=True) …Run Code Online (Sandbox Code Playgroud)