存储用户相关数据并通过用户ID访问它

时间:2016-04-18 11:21:00

标签: python django django-models

Django网站具有用户身份验证,只有几个用户才能登录,所以它非常隐私。如果用户登录,则他从多个API系统获取数据,网站中显示的内容。我有一个数据库,我为每个userID和其他数据库提供不同的API令牌,用于Django身份验证的用户帐户,这是默认情况下制作的Django系统。我应该如何获得两个数据库的ID:那么我可以使用正确的API令牌发出API请求?

1 个答案:

答案 0 :(得分:0)

这取决于您的数据库配置。但你可以manually select database for QuerySet with ".using()" method

对于那个设置:

DATABASES = {
    'default': {
        'NAME': 'main_db', # Here we store Users
        'ENGINE': 'django.db.backends.sqlite3',
    },
    'auth': {
        'NAME': 'auth_db',  # Here we store API tokens
        'ENGINE': 'django.db.backends.sqlite3',
    },

然后,要使用指定的电子邮件获取用户的API令牌,您可以使用:

user = User.objects.using('default').get(email='john@example.com')
token = ApiKey.objects.using('apikeys').get(user_id=user.id)