Django como salvar informações do usuário no modelo veio embora API

votos
1

Eu estou fazendo um webapp que está ligado com uma API. Quando o usuário autoriza o meu webapp para usar 3o partido API, a API enviar informações relativas ao usuário. Eu quero salvar essa informação no meu modelo para usá-lo para o futuro. Eu não tenho certeza de como salvar as informações no modelo contra o usuário já logado Aqui está o meu código.:

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)

A informação está chegando ao meu ponto de vista corretamente e eu sou capaz de construir um dicionário com ele na views.py. Como posso salvar esta informação?

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)
Publicado 29/01/2018 em 22:30
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

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)
Respondeu 29/01/2018 em 22:38
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more