考虑其他模型字段时如何使用'MinValueValidator'?

时间:2018-10-22 19:02:30

标签: django django-models

如何在基于同一模型类的另一个MinValueValidator的{​​{1}}上使用DateField

示例代码:

DateField代码:

models.py

from django.db import models from django.core.validators import MinValueValidator class Edition(models.Model): submission_deadline = models.DateField( 'some text', help_text='some help text' ) committee_evaluation_deadline = models.DateField( 'some text', help_text='some help text', validators=[MinValueValidator(submission_deadline, message='some specific error message')] ) scientific_editor_evaluation_deadline = models.DateField( 'some text', help_text='some help text', validators=[MinValueValidator(committee_evaluation_deadline, message='some specific error message')] ) appraiser_evaluation_deadline = models.DateField( 'some text', help_text='some help text', validators=[MinValueValidator(scientific_editor_evaluation_deadline, message='some specific error message')] ) author_correction_deadline = models.DateField( 'some text', help_text='some help text', validators=[MinValueValidator(appraiser_evaluation_deadline, message='some specific error message')] ) appraiser_revaluation_deadline = models.DateField( 'some text', help_text='some help text', validators=[MinValueValidator(author_correction_deadline, message='some specific error message')] ) # other fields that are excluded from the form 代码:

form.py

该表单将处理save方法,因此将触发所有验证器。我想还有另一种简单的方法可以做到这一点,所以我不必在表单(clean_field())上进行字段验证或保存模型来为每个字段引发特定于错误的错误消息。

任何人都知道如何获取可以在模型定义中使用的DateField的字段值吗?我的意思是,我不想实现另一行代码,我只是想知道在这种情况下是否有一种方法可以享受已经内置的MinValueValidator,而该功能已经通过引用其他模型的字段实现了。我进行了测试,如果使用手动编码的条件,例如class EditionCreateForm(forms.ModelForm): class Meta: model = Edition exclude = ['magazine', 'slug', 'appraisers', 'types', 'published'] ,则该表单将引发并完美地呈现字段错误,从而产生更多代码。

1 个答案:

答案 0 :(得分:0)

您可以使用信号:建议使用pre_save()。您可以在插入之前检查并验证这些数据