2010-01-06 2 views
0

Я начинаю с django, и я хотел бы расширить базовый класс django.contrib.auth.models.User, чтобы создать свой собственный профиль сайта. Here описано, как это сделать, получил это.Создание нескольких классов профилей в django

Насколько я понял, вы можете указать только один класс как AUTH_PROFILE_MODULE в своем settings.py.

Теперь, если я создаю класс расширения моего профиля класса, как этот

class UserProfile(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    somefield = models.CharField() 

class UserProfileExtended(UserProfile): 
    extrafield = models.CharField() 

то я не могу сделать оба из них профильные классы, верно?

(я знаю, в этом случае вы бы просто добавить extrafield суперкласса и падение UserProfileExtended полностью. Только представьте, у вас есть в UserProfileExtended так много полей, которые вы действительно хотите, чтобы разделить их)

Спасибо для вашей помощи!

+0

Аналогичный вопрос здесь: http://stackoverflow.com/questions/678496/whats-the-best-way-to-have-different-profiles-for-different-kinds-of-users-in-dj –

ответ

1

Может быть только один класс профиля. Наверное, я не понимаю сценарий, в котором вы хотели бы разделить их. В любом случае,

AUTH_PROFILE_MODULE = "UserProfileExtended" 

должен правильно обрабатывать наследование для простого примера, который вы даете.

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