小编gui*_*rro的帖子

修改后的 Django admin clean() 方法没有被调用

我开发了一个基于 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)

python django django-models django-admin

3
推荐指数
1
解决办法
4442
查看次数

标签 统计

django ×1

django-admin ×1

django-models ×1

python ×1