在我的Django项目中,每个django用户都有一个配置文件,配置文件与Info模型相关。两种关系都是OneToOne。由于大部分时间我都在为用户使用Profile和Info模型,因此我希望默认选择这些模型,这样我就不会再次访问数据库了。有没有办法使用Django身份验证?
答案 0 :(得分:0)
使用django> = 1.5进行自定义用户模型使用选择相关功能。
user = User.objects.select_related('profile_related', 'info_related')
答案 1 :(得分:0)
我知道这已经存在了一段时间,但我正在添加我的解决方案以防其他人面临类似的情况。 Django(v1.8甚至v1.7)允许你自定义管理员(查询时使用的对象)
您可以为个人资料:
拥有这样的经理class ProfileManager(models.Manager):
# use_for_related_fields = True
def get_queryset(self):
return super(ProfileManager, self).get_queryset().select_related('user')
然后在模型中:
class Profile(models.Model):
user = models.OneToOneField(
User,
primary_key=True,
on_delete=models.CASCADE
)
# your fields ...
# the manager
objects = ProfileManager()
# ...
然后,您对个人资料的所有查询都会自动选择相关用户。 您可以扩展此代码以包含信息模型。
祝你好运!