Как я могу установить представления Django в зависимости от источника api?

Мне нужно показать мои django представления после входа в систему, когда api валидируется. Но я не могу этого обеспечить, потому что валидация из базы данных в django выполняется стандартными функциями django. Когда API, который я настроил с помощью Fastapi, кипит, я могу войти в систему, сгенерировав access_token, но тогда я не могу авторизовать свои наборы представлений или поставить условие, например access_token_required. Как вы думаете, как я могу этого добиться?

views.py

def _login(request):
    
    if request.method == 'POST':
        loginPayload = {
            "username" : request.POST['username'],
            "password" : request.POST['password']
        }
        
        loginActionResult = LoginAction(loginPayload).__login__()
        actionResult = loginActionResult['result']
        token = loginActionResult['detail']
        if not actionResult:
            messages.add_message(request, messages.ERROR, token)
        else:
            return redirect('chockindex')
        
        
    
    return render(request, 'account/login.html',context = {
        "loginform" : UserLoginForm()
    })


@acces_token_required <========== I want to take a precaution like this
def owners(request):
    return render(request, 'pages/owners.html')

и эта loginactionfunctions

class ApiUrls():
    
    def __init__(self):
        self.headersDefault = {
            "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0",
            "Content-Type" : "application/x-www-form-urlencoded",
            "Accept-Language" : "tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3",
            "accept" : "application/json"
        }
        self.loginUrl = "http://127.0.0.1/login"
        self.bonusRequestsUrl = "http://127.0.0.1/results"  

class LoginAction(ApiUrls):
    
    def __init__(self, loginPayload):
        super().__init__()
        self.loginPayload = loginPayload
        
    def __login__(self):
        loginRequest = requests.post(
            url=self.loginUrl,
            headers=self.headersDefault,
            data=self.loginPayload
        )
        loginResponse = loginRequest.json()
        
        try:
            return {
                "detail" : loginResponse['detail'],
                "result" : False
            }
            
        except:
            return {
                "detail" : loginResponse['access_token'],
                "result" : True
            }

Ответ через API

{
    "access_token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhbHAiLCJleHAiOjE2Njc2Njk1MzJ9.D8s0XnYI1ib7KW18vCygc8LrO3xgSLJ4vF6CU78-9ng",
    "type" : bearer
}
Вернуться на верх