django 会话(我无法将数据传送到下一页)

问题描述 投票:0回答:1

一旦登录成功,它会重定向到whmcs页面并显示成功消息,但它不显示用户的名字和姓氏,为什么?请帮助我

查看a.py

def login(request):
        if request.method == 'POST':
            email = request.POST['email']
            password = request.POST['password']

            api_url = 'https://www.chltech.net/manage/includes/api.php'
            api_username = 'XMBoFf3A3RvUCQnsJaQEHjQefx9W5FWC'
            api_password = '4yCdTGPvQWS2tnRFYS6CgIG7HMcmtLWZ'
            api_action = 'validatelogin'

            api_params = {
                'username': api_username,
                'password': api_password,
                'action': api_action,
                'responsetype': 'json',
                'email': email,
                'password2': password,
            }

            response = requests.post(api_url, data=api_params)

            if response.status_code == 200:
                data = response.json()
                if data['result'] == 'success':
               
                        user_first_name = data.get('firstname', '')  
                        user_last_name = data.get('lastname', '')
                    
                        request.session['user_first_name'] = user_first_name  #
                        request.session['user_last_name'] = user_last_name
                    
                        print(user_first_name,user_last_name)
                        messages.success(request , "login successful")
                        return redirect('whmcs')
                
                
                else:
                    messages.error(request, "Invalid email or password.")
            else:
                messages.error(request, f"Login failed: HTTP Error {response.status_code}")
    
    
        form = CustomAuthenticationForm()
        return render(request, 'login.html', {'form': form})


    def whmcs(request):
    
         user_first_name = request.session.get('user_first_name', '')
         user_last_name = request.session.get('user_last_name', '')

         return render(request, 'whmcs.html', {'user_first_name': user_first_name, 'user_last_name':                                              
          user_last_name})

whmcs.html

<!DOCTYPE html>
     <html>
     <head>
         <title>Client Emails</title>
     </head>
    <body>
    {% block content %}
    <h1>Welcome, {{ user_first_name }} {{ user_last_name }}</h1>
        {% if messages %}
                        {% for message in messages %}
                            {% if message.tags == 'error' %}
                                <div class="alter alter-danger">
                                    {{message}}
                                </div>
                            {% else %}
                                <div class="alert alter-{{ message.tag }}">
                                    {{message}}
                                </div>
                            {%endif%}
                        {%endfor%}
        {%endif%}  
     {% endblock %}
    </body>
    </html>

我尝试创建一个新文件并进行测试,但得到了相同的结果,是因为我正在使用 whmcs api 吗? 在下一页中,我想获取所有用户数据并显示在网页中。

django api django-rest-framework django-views whmcs
1个回答
0
投票

Django 模板不够智能,无法知道你的意思。,而不告诉它们变量来自哪里。

尝试

<h1>Welcome, {{ request.session.user_first_name }} {{ request.session.user_last_name }}</h1>
© www.soinside.com 2019 - 2024. All rights reserved.