1. 程式人生 > 其它 >Day78三: 鉤子函式hook

Day78三: 鉤子函式hook

個人理解:1,有去有回(定義,獲取,返回)  2,自動觸發(原始碼裡有自動監控的模組)  3、區域性鉤子和全域性鉤子

HOOK)

```python
"""
在特定的節點自動觸發完成響應操作

鉤子函式在forms元件中就類似於第二道關卡,能夠讓我們自定義校驗規則

在forms元件中有兩類鉤子
    1.區域性鉤子
        當你需要給單個欄位增加校驗規則的時候可以使用
    2.全域性鉤子
      當你需要給多個欄位增加校驗規則的時候可以使用
"""
# 實際案例

# 1.校驗使用者名稱中不能含有666                只是校驗username欄位  區域性鉤子

# 2.校驗密碼和確認密碼是否一致            password confirm兩個欄位    全域性鉤子

# 鉤子函式  在類裡面書寫方法即可
    # 區域性鉤子
    def clean_username(self):
        # 獲取到使用者名稱
        username = self.cleaned_data.get('username')
        if '666' in username:
            # 提示前端展示錯誤資訊
            self.add_error('username','光喊666是不行滴~')
        # 將鉤子函式鉤去出來資料再放回去
        return username

    # 全域性鉤子
    def clean(self):
        password = self.cleaned_data.get('password')
        confirm_password = self.cleaned_data.get('confirm_password')
        if not confirm_password == password:
            self.add_error('confirm_password','兩次密碼不一致')
        # 將鉤子函式鉤出來資料再放回去
        return self.cleaned_data
```