Django用户模型验证器

时间:2011-03-15 22:21:01

标签: python django validation

有人能建议一种聪明的方法来为Django User模型添加验证器吗?我基于first_name,last_name和username创建文件和目录,所以我想使用我在其他模型上使用的相同标准验证器来仔细控制允许使用哪些字符。我看不出这么简单的方法。

TIA

伊恩

1 个答案:

答案 0 :(得分:2)

你真的应该继承User对象并以correct的方式添加验证器,但是如果你想生活危险,你也可以尝试修补用户类。

您可以将其放入应用的__init__.py文件中......

from django.contrib.auth.models import User

def validate_for_fs(value): # <-- If the value string doesn't meet a condition required to be a name on the filesystem then throw a ValidationError
    if foo_condition_not_met:
        raise ValidationError(u'foo is not true for %s' % value)
    if bar_condition_not_met:
        raise ValidationError(u'bar is not true for %s' % value)

for field in [f for f in User._meta.fields if f.name in ['first_name','last_name','email']]:
    field.validators.append(validate_for_fs)