gpt4 book ai didi

django - Django 的模型验证器中可以使用多个值吗?

转载 作者:行者123 更新时间:2023-12-02 04:51:01 25 4
gpt4 key购买 nike

我有一个模型,为我的模型验证器使用名为 CompareDates 的验证类,并且我想向验证器传递两个字段值。但是我不确定如何在验证器中使用多个字段值。

我希望能够在日期之间进行比较,以便从整体上验证模型,但您似乎无法对传递给验证器的值进行关键字搜索,还是我遗漏了某些内容?

from django.db import models
from myapp.models.validators.validatedates import CompareDates

class GetDates(models.Model):
"""
Model stores two dates
"""
date1 = models.DateField(
validators = [CompareDates().validate])
date2 = models.DateField(
validators = [CompareDates().validate])

最佳答案

“普通”验证器只会获取当前字段值。所以它不会做你想做的事。但是,您可以添加一个干净的方法,并且 - 如果需要的话 - 覆盖您的保存方法,如下所示:

class GetDates(models.Model):
date1 = models.DateField(validators = [CompareDates().validate])
date2 = models.DateField(validators = [CompareDates().validate])
def clean(self,*args,**kwargs):
CompareDates().validate(self.date1,self.date2)
def save(self,*args,**kwargs):
# If you are working with modelforms, full_clean
# (and from there clean) will be called automatically.
# If you are not doing so and want to ensure validation
# before saving, uncomment the next line.
#self.full_clean()
super(GetDates,self).save(*args,**kwargs)

关于django - Django 的模型验证器中可以使用多个值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12639031/

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