Django用户模型验证器

0 投票
1 回答
910 浏览
提问于 2025-04-16 13:46

有没有人能给个好主意,怎么给Django的用户模型添加验证器?我根据名字、姓氏和用户名来创建文件和目录,所以我想严格控制这些地方允许使用哪些字符,想用我在其他模型上用的那些标准验证器。不过我找不到简单的方法来做到这一点。

谢谢大家!

伊恩

1 个回答

2

其实,你应该是创建一个新的类来继承User对象,并按照正确的方法添加验证器。不过,如果你喜欢冒险的话,也可以尝试直接修改User类。

你可以把这个放在你应用的__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)

撰写回答