Это зависит от того, что вы пытаетесь добавить в модель. Если вы хотите добавить больше информации о пользователе, то обычно рекомендуется использовать метод UserProfile
: http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
Однако, если вы просто хотите добавить собственные методы или менеджеры в модель User
, я бы сказал, что более логично использовать прокси-модель, например, так:
from django.contrib.auth.models import User
class UserMethods(User):
def custom_method(self):
pass
class Meta:
proxy=True
Прокси-модель будет работать с той же таблицей базы данных, что и исходная модель, поэтому идеально подходит для создания пользовательских методов без физического расширения модели. Просто замените любые ссылки на User
в ваших представлениях на UserMethods
. (И, конечно, вы можете использовать это в инструменте администратора, отменив регистрацию модели User
и зарегистрировав модель прокси вместо нее.)
Любые созданные экземпляры исходной модели User
будут мгновенно доступны через модель UserMethods
и наоборот. Подробнее здесь: http://docs.djangoproject.com/en/dev/topics/db/models/#proxy-models
(NB. Для прокси-моделей требуется Django 1.1 и выше)