Python 扩展Django用户模型
我想要与Python 扩展Django用户模型,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我想要与django.contrib.auth.User完全相同的行为,但我需要使用一些用户首选项和特定于概要文件的字段来扩展模型 我知道我最终可以制造出两种新的型号 class Profile(models.Model): user = OneToOneField(User) age = SmallPositiveIntegerField() 及 我不知道把这些东西分开是否明智 但是我想检索每个页面上的用户首选项,如果我使用这种方法,通过使用OneToOneField扩展us
django.contrib.auth.User
完全相同的行为,但我需要使用一些用户首选项和特定于概要文件的字段来扩展模型
我知道我最终可以制造出两种新的型号
class Profile(models.Model):
user = OneToOneField(User)
age = SmallPositiveIntegerField()
及
我不知道把这些东西分开是否明智
但是我想检索每个页面上的用户首选项,如果我使用这种方法,通过使用OneToOneField
扩展user
模型,每次获取user.preference.background\u color
时都需要另一个sql查询
我认为用用户
模型(或什么)来替代可能有些过分,那么我能做什么呢
代理模型是答案吗?人们(例如,两个勺子)通常建议这样做是通过子类化AbstractUser(或者AbstractBaseUser,如果您想要更少的基本用户字段;baseuser只给您密码、登录时间戳,并且处于活动状态)。然后,您只需像对普通模型那样添加字段,并像对普通模型那样查询它们
class Preference(models.Model):
user = OneToOneField(User)
background_color = CharField(max_length=6)