是否可以将 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)
这样,如果用户登录,我可以轻松获取配置文件,因为用户有一个 get_profile() 方法。但是,我想添加 UserProfileB。环顾四周,似乎起点是创建一个超类用作 AUTH_PROFILE_MODULE 并让 UserProfileA 和 UserProfileB 都继承自该超类。问题是,我不认为 get_profile() 方法返回正确的配置文件。它将返回超类的一个实例。我来自 java 背景(多态性),所以我不确定我应该做什么。
谢谢!
编辑:
好吧,我找到了一种方法来通过我在此站点http://djangosnippets.org/snippets/1031/上找到的一种称为“继承黑客”的方法来做到这一点
它工作得非常好,但是,来自自动发生这些事情的java背景,我有点不安,因为有人必须对其进行编码并将其称为“hack”才能在python中完成。python没有启用这个功能有什么原因吗?