2017-09-05 19 views
0

我有一個TextField我想添加一個min_length到。W fields田地上的自定義驗證器

根據Django文檔,可以使用內置的驗證器來執行此操作(https://docs.djangoproject.com/en/1.11/ref/validators/#minlengthvalidator)。

我想這跟這個代碼添加到我的模型:

class MyPage(Page): 
    ... 
    introduction = models.TextField(
     null=True, 
     blank=False, 
     validators=[MinLengthValidator(240, message="Must be at least 240 chars.")] 

當值發佈這個網頁低於240,但是,我並沒有得到預期的驗證錯誤,而是打了一個TypeErrorunorderable types: str() < int()

有沒有辦法在TextField上有min_length

+0

怎麼樣'驗證= MinLengthValidator(240)'_without一個'message'_? –

+0

我收到了同樣的錯誤。 – inostia

+0

帶參數:'min_length = 240' –

回答

0

如果默認MinLengthValidator不爲你工作,我建議你到箱子自定義驗證象下面這樣:

from django.core.validators import ValidationError 

def max_length_validator(value): 
    if len(value) < 240: 
     raise ValidationError("Must be at least 240 chars.") 


class MyPage(Page): 
    introduction = models.TextField(
     blank=False, validators=[max_length_validator]) 
+0

我使用了錯誤的驗證器MinValueValidator。 'MinLengthValidator'工作得很好。謝謝你的幫助 – inostia