По различным сложным причинам [1] мне нужно добавить дополнительные свойства в класс User Django.
Я не могу использовать ни Профиль, ни способ наследования. (Как в Расширение модели пользователя с помощью пользовательских полей в Django )
Итак, я включил класс User в мой файл local_settings. И добавив к этому свойство там.
Это, возможно, удивительно, похоже, работает во многих случаях. Но не тогда, когда я создаю нового пользователя из UserManager.create_user (). Поэтому мне нужно исправить альтернативу методу UserManager.create_user (). Глядя на источник этого (в contrib.auth.models.py), я обнаружил, что класс, который он использует для создания пользователя, хранится в свойстве с именем UserManager.model, а не на него ссылаются напрямую.
Строка такая:
user = self.model (Нет, имя пользователя, '', '', email.strip (). Lower (), 'placeholder', False, True, False, сейчас, сейчас)
Проблема в том, что этот self.model (который, как я полагаю, содержит ссылку на класс User), похоже, не является моей исправленной версией.
Итак, кто-нибудь знает, где настроен этот self.model в случае UserManager? И правильно ли я предположил, что на тот момент код не прошел local_settings, поэтому мой патч для класса User отсутствует? А если есть лучшее место для патча класса?
ура
фил
[1] Чтобы удовлетворить ограничения
IOUs. Мне нужно, чтобы класс User использовал другую и существующую таблицу в базе данных, которая имеет дополнительные поля и ограничения.
Обновление: для дальнейшего использования, похоже, что прокси-модели - это способ, которым Django собирается поддерживать то, что мне нужно: http://code.djangoproject.com/ticket/10356