簡體   English   中英

在Django的RegexValidator中引用搜索組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM