Возможно ли использовать функции аутентификации пользователя Django с более чем одним профилем?Больше одного профиля в Django?
В настоящее время у меня есть файл settings.py, который имеет это в нем:
AUTH_PROFILE_MODULE = 'auth.UserProfileA'
и models.py файл, который имеет это в нем:
from django.db import models
from django.contrib.auth.models import User
class UserProfileA(models.Model):
company = models.CharField(max_length=30)
user = models.ForeignKey(User, unique=True)
таким образом, если пользователь logs in, я могу легко получить профиль, потому что у пользователя есть метод get_profile(). Однако я хотел бы добавить UserProfileB. От взгляда вокруг немного кажется, что отправной точкой является создание суперкласса, используемого в качестве AUTH_PROFILE_MODULE, и наследуемый от этого суперкласса наследует как UserProfileA, так и UserProfileB. Проблема в том, что я не думаю, что метод get_profile() возвращает правильный профиль. Он вернет экземпляр суперкласса. Я исхожу из фона java (полиморфизм), поэтому я не уверен точно, что я должен делать.
Спасибо!
Edit:
Ну я нашел способ сделать это через что-то называется «наследование хак», что я нашел на этом сайте http://djangosnippets.org/snippets/1031/
Она работает очень хорошо, однако, исходя из Java фона, где это происходит автоматически, я немного расстроен из-за того, что кто-то должен был закодировать это и называть его «взломом», чтобы сделать это в python. Есть ли причина, по которой python не позволяет это?
У меня такая же проблема. Мне просто интересно, что вы поместили свой 'AUTH_PROFILE_MODULE' как? – Modelesq