Я хотел бы расширить модель User, чтобы я мог добавить некоторые дополнительные поля и функции (не только поля, имейте в виду, либо (ну, все же) я мог бы использовать get_profile (), который, я думаю,ужасно).
Также я хотел бы использовать эту новую расширенную модель пользователя в request.user, например:
Расширенная модель пользователя:
# imports etc
class CustomUser(User):
extra_field = ...
def extra_function(self):
...
return ...
Пример использования вида:
# imports etc
def extra_function_view(request):
print request.user.username
print request.user.extra_field
request.user.extra_function()
return HttpResponse( ... )
Вышеприведенный код явно не работает, потому что extra_field и extra_function отсутствуют в модели User.
Теперь я нашел метод для этого, используя сервер аутентификации,что довольно сложно, и что я не смог заставить работать в Django 1.2.3.
AUTHENTICATION_BACKENDS = (
'myproject.auth_backends.CustomUserModelBackend',
)
...
CUSTOM_USER_MODEL = 'accounts.CustomUser'
Далее мы попробовали другие методы, такие как использование сигналов, которые не работали.Мне кажется, что единственное решение заключается в настройке модели User в Django (что не является элегантным решением, корректирующим исходный код Django, но является разумным решением для кода).
Поэтому я ищурешение для этого .. кто-нибудь делал это раньше?
Спасибо, пока
Стефан