Django Валидаторы моделей пользователей - PullRequest
0 голосов
/ 16 марта 2011

Кто-нибудь может предложить умный способ добавить валидаторы в модель пользователя Django?Я создаю файлы и каталоги на основе first_name, last_name и username, поэтому я хотел бы тщательно контролировать, какие символы там разрешены, используя те же стандартные валидаторы, что и на других моделях.Я не вижу простого способа сделать это.

TIA

Ian

1 Ответ

2 голосов
/ 16 марта 2011

На самом деле вы должны создавать подклассы для объекта User и добавлять валидаторы способом correct, но если вы хотите жить опасно, вы можете попробовать обезьяны, исправляющие класс 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...