我正在尝试构建一个用户能够定义和测试自己的正则表达式模式的系统。为此,我有以下设置:
import re
class ExtendedRegexValidator(models.Model):
pattern = models.TextField(
_('pattern'),
help_text=_('Required. Must be a valid regular expression pattern.')
)
def save(self, *args, **kwargs):
try:
re.compile(self.pattern)
except Exception as e:
# handle exception
super(ExtendedRegexValidator, self).save(*args, **kwargs)
在保存之前,我尝试使用pattern
模型字段的值编译一个正则表达式模式,即TextField
. 这真的有必要吗?有没有更理想的方法来做到这一点?这种感觉有点hacky。