【发布时间】:2018-01-30 00:30:38
【问题描述】:
我正在制作一个与 API 连接的 webapp。当用户授权我的 webapp 使用 3rd 方 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)
models.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)
信息正确地出现在我的视图中,我可以在 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)
【问题讨论】: