如何从验证(is_valid)django中删除特定的表单字段

问题描述 投票:0回答:3

django 表单中有四个字段,我正在使用 is_valid() 函数进行验证,但我不想验证整个表单,而是想排除一个不应使用 is_valid() 函数进行验证的字段

django django-models django-forms
3个回答
1
投票

您可以在表单中使用排除参数来排除您不想验证的字段。

假设您有一个名为 MyModel 的模型和一个名为 MyForm 的模型表单

# forms.py

from django import forms
from .models import MyModel

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel 
        exclude = ['field_name_you_want_to_exclude']

0
投票

您可以在模型中使用 clean() 方法来指定要验证的字段https://docs.djangoproject.com/en/2.1/ref/models/instances/#django.db.models.Model。干净


0
投票

覆盖

errors()
中的
Form
功能。这是一个例子:

class MyModelForm(forms.ModelForm):
    class Meta:
        model = MyModel
        fields = "__all__"
    
    @property
    def errors(self):
        """Return an ErrorDict for the data provided for the form."""
        if self._errors is None:
            self.full_clean()
        
        if self._errors.get('my_field'):
            del self._errors['my_field']

        return self._errors

请注意:

  1. 这是自定义代码,它必须与您正在使用的 Django 版本一起更新......
  2. 您仍然需要以某种方式管理您将遇到的 SQL 错误。独特的约束,不为空等......
© www.soinside.com 2019 - 2024. All rights reserved.