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