Django:从request.user到派生类

时间:2016-04-05 10:57:23

标签: django inheritance django-models

我从django.contrib.auth.models.User派生,使用multi table inheritance

为每个用户扩展应用特定数据
class FooUser(User):
    telephone_number = models.TextField(blank=True, default='')

foo_user获取request.user个实例的最简单方法是什么?

1 个答案:

答案 0 :(得分:3)

在您链接的段落中,表示:

  

如果你有一个也是餐厅的地方,你可以从这里来   使用小写版本将对象放置到Restaurant对象   型号名称:

>>> p = Place.objects.get(id=12)
# If p is a Restaurant object, this will give the child class:
>>> p.restaurant <Restaurant: ...>

所以在你的情况下,只需:request.user.foouser

当然,正如文档中所指出的,只有当前用户被创建为FooUser并且在相应表中具有关联数据时,这才有效。如果没有,则会引发FooUser.DoesNotExist