Shr*_*hri 2 django django-models
我到底必须在哪里编写 Django 文件夹中的自定义验证器?
下面是我的模型所在的文件夹 /home/shrivatsa555/childrenGK/cgkapp/models.py
我只需要验证 1、2 和 3 范围内的问题难度级别:
class Questions(models.Model):
Question_Number = models.AutoField(primary_key = True),
Question_Text = models.CharField(max_length = 1000),
Option1 = models.CharField(max_length=500),
Option2 = models.CharField(max_length=500),
Option3 = models.CharField(max_length=500),
Option4 = models.CharField(max_length=500),
Answer = models.CharField(max_length=500),
Difficulty_Level = models.IntegerField(validators=[validate_number])
Run Code Online (Sandbox Code Playgroud)
我在 views.py 中编写了一个自定义验证器,但它不起作用。
有 3 种方法,我至少知道:
创建一个 validators.py 文件并在模型中导入您的验证器并像这样使用它们:
title = models.CharField(max_length=255, validators=[validate_title])
Run Code Online (Sandbox Code Playgroud)
创建一个 validators.py 文件并在表单中导入您的验证器并像这样使用它们:
def __init__(self, *args, **kwargs):
super(QuestionsForm, self).__init__(*args, **kwargs)
self.fields['title'].validators.append(validate_title)
Run Code Online (Sandbox Code Playgroud)
您可以创建自定义 clean() 表单方法并在此处使用您的验证器:
def clean(self):
cleaned_data = super(IceCreamOrderForm, self).clean()
title = cleaned_data.get('title', '')
if title in x:
msg = '...'
raise forms.ValidationError(msg)
return cleaned_data
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2718 次 |
| 最近记录: |