假设模型有两个DateTimeFields:
class Tourney(models.Model):
registration_deadline = models.DateTimeField()
start_date = models.DateTimeField()
当用户尝试从Django管理员内部提交Tourney时,如何在保存到数据库registration_deadline
之前start_date
进行测试,并且如果有错误,当然要通知用户内联,就像Django是否有其他其他情况一样验证错误?
基本上,我正在寻找自定义管理员验证。Django文档的这部分内容很接近,但似乎是针对表单的。如何在Django管理员中执行“相互依赖的清理和验证字段”?只需指向文档中正确位置的指针就足够了。
编辑:我认为它与验证程序有关,但他们似乎只能测试一个值,而不是同时测试两个值。
from django import forms
from django.contrib import admin
from .models import Tourney
class TourneyAdminForm(forms.ModelForm):
class Meta:
model = Tourney
fields = '__all__'
def clean(self):
if self.cleaned_data['registration_deadline'] > self.cleaned_data['start_date']:
raise forms.ValidationError('Registration deadline must be before the start date')
return self.cleaned_data
class TourneyAdmin(admin.ModelAdmin):
form = TourneyAdminForm
admin.site.register(Tourney, TourneyAdmin)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句