[英]Referencing search groups in Django's RegexValidator
我有一個具有命名搜索組的正則表達式驗證器。 像這樣:
from django.core.validators import RegexValidator
my_validator = RegexValidator(r'^[a-zA-Z0-9]*/(?P<pk>[0-9]*)$')
現在,我用它來檢查模式。 像這樣:
search = my_validator('articles/421')
search.group('pk')
最后一行返回錯誤:
AttributeError: 'NoneType' object has no attribute 'group'
為什么是這樣? RegexValidator沒有普通的正則表達式,因為它沒有組?
Django RegexValidator是用於模型字段驗證的可調用類。 模型字段使用它來驗證值。 字段調用其驗證器,並檢查是否未引發ValidationError
它具有regex屬性,這是用惰性函數裝飾器覆蓋的常規regex。 如果只需要正則表達式,則只需使用標准python的re。
您可以將RegexValidator(或類似的類/可調用對象)列表傳遞給模型字段屬性驗證器,如下所示:
url_validator = RegexValidator(r'^[a-zA-Z0-9]*/(?P<pk>[0-9]*)$')
url = forms.CharField(validators=[url_validator])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.