【发布时间】:2020-04-14 04:50:34
【问题描述】:
我有链接到用户的抽象个人资料:
class Account(models.Model):
class Meta:
abstract = True
user = models.OneToOneField(settings.AUTH_USER_MODEL, primary_key=True)
patronic_name = models.CharField(max_length=255, default="")
# additional fields and methods
def foo(self):
print('account')
而且我有多个不同的角色和实施 - 学生、导师、管理员等。 我为它们中的每一个创建了一个类,派生自 Account 类。
class Teacher(Account):
def foo(self):
print('teacher')
# ...additional fields and methods
class Student(Account):
def foo(self):
print('student')
# ...additional fields and methods
现在我想在类对象上调用foo 方法,像这样:
@login_required
def index(request):
request.user.account.foo()
但是由于Account类是抽象类,所以不存在request.user.accountM2M关系。
我有request.user.student、request.user.teacher 关系,但我不知道关系的类型。
有什么方法可以得到request.userUser对象的具体账号吗?
【问题讨论】:
标签: django django-models django-authentication