首页 > 解决方案 > 如何从views.py django将第三方访问令牌存储到我的个人资料模型中

问题描述

我正在尝试将会话 ID 和访问令牌从第三方网站的 API 存储到我的用户配置文件中,我已经尝试了几天并进行了搜索,但我找不到这样的东西

我试图导入配置文件实例,以便我可以将数据保存到用户配置文件实例,但我不知道如何,这是我的代码

#views.py
from bs4 import BeautifulSoup
import xml.etree.ElementTree as ET
from django.contrib.auth.decorators import login_required
import urllib.parse
from django.views.generic import View
from users.models import Profile
from django.contrib.auth.models import User

def profile_view(request):
    RuName= 'driss_aitkassi-drissait-crm-SB-ijuzzy'

    r= {
    'RuName': RuName
    }

    response = api.execute('GetSessionID', r)
    
    print(response)

    res =response.text

    tree= ET.fromstring(res)

    #here is my session id from the website's api    

    for node in tree.iter('{urn:ebay:apis:eBLBaseComponents}GetSessionIDResponse'):
        SessionID= node.find('{urn:ebay:apis:eBLBaseComponents}SessionID').text 
    #i tried this :

    s=Profile(session_id=SessionID)
    s.save()

    # and also tried this
        

    # and also this:

    Profile.objects.update(session_id=SessionID)
    
    Profile.objects.model.save()

这是 Models.py 文件:

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver


class Profile(models.Model):
    user = models.OneToOneField(User,related_name='profile' , on_delete=models.CASCADE)
    token = models.TextField(max_length=500, blank=True)
    session_id=models.TextField( max_length=500, blank=True)
    def __str__(self):
        return self.user.username

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

请帮我解决这个问题,或者只是指出我正确的方向谢谢

标签: pythondjangodjango-models

解决方案


推荐阅读