Django表单,动态验证字段

时间:2014-03-30 22:53:49

标签: python django validation

我尝试通过从相关表中获取最大值来动态验证字段。 课程模型有一个名为的字段,即持续时间。因此,在选择特定课程时,字段的值应介于1和课程持续时间之间。

更新:现在它返回错误 int()参数必须是字符串或数字,而不是'课程'

forms.py

class SelectCourseYear(forms.ModelForm):
    class Meta:
        model = Student
        fields = ['course', 'year']

    def clean_year(self):
        course = self.cleaned_data.get('course')
        year = self.cleaned_data.get('year')
        course_years = Course.objects.get(pk=course).years
        if ((year <= 0) and (year > course_years)):
            raise forms.ValidationError('Error. Check year of studies.')
        return course

1 个答案:

答案 0 :(得分:1)

你的意思是:

(year <= 0) or (year > course_years)