forms组件源码

"""
切入点
    form_obj.is_vaild()
"""

def is_valid(self):
        """
        Returns True if the form has no errors. Otherwise, False. If errors are
        being ignored, returns False.
        """
        return self.is_bound and not self.errors
        # 如果is_vaild要返回True的话 
        # 那么self.is_bound要为True
        # self.errors要为False
        
self.is_bound = data is not None or files is not None
# 只要你传值了 肯定为True


 @property
def errors(self):
        "Returns an ErrorDict for the data provided for the form"
        if self._errors is None:
            self.full_clean()
        return self._errors
    
# forms组件所有的功能都基本出自于该方法
def full_clean(self):
        self._clean_fields()  # 校验字段 + 局部钩子
        self._clean_form()  # 全局钩子
        self._post_clean()

图解

 

 

 

 

 

原文地址:https://www.cnblogs.com/ZhZhang12138/p/14897093.html