如何传递令牌数据并立即在Django中渲染模板?

时间:2019-12-21 10:28:02

标签: django django-rest-framework jwt

我有一个登录表单,可将​​用户重定向到我的应用程序中的特定页面。但是在此之前,我使用了JWT令牌(通过Simple-JWT库),并且需要将这些令牌存储在我的Javascript代码中(以便在登录后访问每个页面)。我对使用令牌完全陌生,不知道如何存储它们。我该怎么办?

这是我之前所做的:

views.py:

def login(request):
    if request.method == 'POST':
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            username = login_form.cleaned_data.get('username')
            password = login_form.cleaned_data.get('password')
            new_user = authenticate(username = username, password = password)
            if new_user is not None:
                url = 'http://localhost:8000/api/token/' 
                values = {
                    'username' : username,
                    'password' : password
                }
                r = requests.post(url, data = values) 
                token_data = r.json()
                return Response(token_data, template_name='users/interface.html') #interface is the template which is seen after logging in successfully.
    else:
        login_form = LoginForm()
    return render(request, "users/login.html", {"login_form" : login_form})

当前,我收到此错误:

AssertionError at /login/
.accepted_renderer not set on Response

如何将令牌数据传递到我的JS文件并立即呈现“接口”模板?我应该为此使用AJAX吗?或者,还有其他有效的解决方案吗?非常感谢。

0 个答案:

没有答案