Вопрос

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

Насколько я понял, вы можете указать только один класс как 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 что вы действительно хотите их разделить)

Спасибо за вашу помощь!

Это было полезно?

Решение

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

AUTH_PROFILE_MODULE = "UserProfileExtended"

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top