Django用户模型验证器
有没有人能给个好主意,怎么给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)