python - Django如何通过API在模型中保存用户信息

标签 python django

我正在制作一个与 API 连接的网络应用程序。当用户授权我的网络应用程序使用第 3 方 API 时,该 API 会发送与用户相关的信息。我想将该信息保存在我的模型中以供将来使用。我不确定如何针对已登录的用户将该信息保存在模型中。这是我的代码:

views.py:

from .models import UserInfo

def auth_finish(request):
    app_session = request.session
    try:
        oa_auth = auth_flow(app_session).finish(request.GET)
        if request.method == 'GET':
            UserInfo.user = request.user # How to save this model?
            UserInfo.access_token = oa_auth.access_token # How to save this model?
            UserInfo.account_id = oa_auth.account_id # How to save this model?
            UserInfo.dbx_user_id = oa_auth.user_id # How to save this model?
        return render(request, 'index.html')
    except oauth.BadRequestException as e:
        return HttpResponse(e)

模型.py

from django.contrib.auth.models import User

class UserInfo(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    access_token = models.CharField(max_length=20, blank=False)
    account_id = models.CharField(max_length=10, blank=False)
    dbx_user_id = models.CharField(max_length=10, blank=False)

信息正确地进入我的 View ,我可以在views.py中用它构建一个字典。我怎样才能保存这些信息?

def auth_finish(request):
    app_session = request.session
    try:
        oa_auth = auth_flow(app_session).finish(request.GET)
            user_auth_info = dict()
            user_auth_info['access_token'] = oa_auth.access_token
            user_auth_info['account_id'] = oa_auth.account_id
            user_auth_info['user_id'] = oa_auth.user_id
            user_auth_info['app_user'] = request.user
            print(user_auth_info)
        return render(request, 'index.html')
    except oauth.BadRequestException as e:
        return HttpResponse(e)

最佳答案

from .models import UserInfo

def auth_finish(request):
    app_session = request.session
    try:
        oa_auth = auth_flow(app_session).finish(request.GET)
        if request.method == 'GET':
            user_info_instance = UserInfo(user=request.user, access_token=oa_auth.access_token, account_id=oa_auth.account_id, dbx_user_id=oa_auth.user_id)
            user_info_instance.save()
        return render(request, 'index.html')
    except oauth.BadRequestException as e:
        return HttpResponse(e)

关于python - Django如何通过API在模型中保存用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48512163/

相关文章:

java - android 获取命令的stderr

django - mySQL CSV 导入中的未知列

python - 为什么 Django Atom1Feed 使用原子 :updated instead of atom:published?

django - 从Docker连接Postgres

Django - TemplateView 和 POST

python - dict.clear() 的时间复杂度如何在 python 中为 O(1)?

python - scipy.signal.convolve2d 计算什么?

Mac OS X 上的 Python 安装问题

Python:在曲线和轴之间填充颜色并区域化区域

Django 测试用例 : SimpleUploadedFile shows wrong filetype