2013-11-22 4 views
1

Я уже давно занимаюсь системой аутентификации Django, и я просто не понимаю, почему мне нужно пройти этот процесс Django doc! :Расширение модели пользователя Django

from django.contrib.auth.models import User 

class Employee(models.Model): 
    user = models.OneToOneField(User) 
    department = models.CharField(max_length=100) 

... а не просто расширить класс "User", как это:

class Employee(User): 
    .... 

... и повторно использовать весь код, содержащийся внутри. Я взглянул на статьи вроде: b-list.org! , и я понимаю, что проблема может быть связана с автоматическим управлением базой данных Django.

Есть ли способ, которым я могу автоматически расширить модель User без необходимости создавать дополнительную таблицу в базе данных, чтобы Django менял текущую таблицу базы данных?

ответ

1

Я склонен подчиняться ребята на Джанго

https://docs.djangoproject.com/en/1.5/topics/auth/customizing/#extending-the-existing-user-model

Поскольку только абстрактные модели не создавать таблицы в Джанго и встроенной пользовательской модели не

+0

Вопрос именно на основе это пример. Дело в том, что я хотел бы узнать фактическую причину, почему эта проблема обрабатывается таким образом. – Ricardo

+0

Причина в том, что встроенный пользовательский класс не является абстрактной моделью. Абстрактные модели должны явно заявить, что в их метаклассе – binboavetonik

Смежные вопросы