簡體   English   中英

Django RegexValidator無法按預期工作

[英]Django RegexValidator Not working as expected

我陷入RegexValidator類。

我試圖允許在“字符字段”中輸入一些定義的HTML(p,ul,li)標簽。 下面的Regex完全可以滿足我的需要,但是我很難實現它。

    <\/?(?!p|ul|li)[^/>]*>

我正嘗試通過以下方式將其添加到我的Django模型中:

     description = models.CharField(max_length = 255, validators=[
                                        RegexValidator(
                                            regex =  r'<\/?(?!p|ul|li)[^/>]*>',
                                            message = 'Disallowed Tags',
                                            code = 'DISALLOWED_TAGS',
                                        ),
                                    ],
                               )

我正在使用Django 1.6。 當我實現上述代碼時,似乎所有表單提交(使用管理界面)都無法通過驗證。

有任何想法嗎?

謝謝

做自己的驗證器,如果regexp匹配項拋出錯誤,因為它是不允許的。
這里有更多關於驗證器的信息。

import re
from django.core.exceptions import ValidationError

def test(val):
    if re.match('<\/?(?!p|ul|li)[^/>]*>', val):
        raise ValidationError('Disallowed Tags')

class Foo(models.Model):
    name = models.CharField(max_length = 150, validators=[test]) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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