2009-11-24 41 views

回答

2
class Model(db.Model): 

    def clean_email(value): 
    if ... 

    email = db.EmailProperty(validator=clean_email) 

使用的參數。在這種情況下,論證本身就是電子郵件的價值。

+0

這不應該起作用。通常,像類似clean_email這樣的類中的一個原始函數對類的任何類方法等都是不可見的。我不明白爲什麼它會被看到的財產。我錯過了什麼嗎? – 2015-08-22 01:15:38

+0

,直到類完成定義(即到達類聲明的末尾),範圍將允許您訪問Model.x(因爲模型尚未定義)。如果代碼在函數內部(因此,在運行時運行,而不是作爲emailproperty的參數,在類定義時評估),那麼你會是正確的。 – matts1 2016-01-24 04:36:38

1

您需要在屬性之前定義方法,正如joetsuihk演示的那樣,或者在類之外將其定義爲函數。我會推薦後者,因爲驗證者沒有理由與該類相關聯。

相關問題