如何在View.py

时间:2016-06-30 17:01:50

标签: python django session view session-storage

不言而喻,我对Django来说还是个新手,所以非常感谢任何帮助。

我正在尝试访问我在view.py中存储在会话存储中的变量'user_id'。

view.py:

class ProfileOrders(View):
template_name = 'landingpages/profile-orders.html' 

def get(self, request):
    customer_identity = self.request.session.get('user_id');
    first_entry = CompleteOrderList.objects.get(customer_id = customer_identity, order_id='9d41cf4b-b606-461c-bc4e-f7363984782b');
    return render(request, self.template_name, {'first_entry': first_entry})

但是我收到一个错误:“CompleteOrderList匹配查询不存在。” 因为 self.request.session.get('user_id')返回'none'。在错误页面上,我可以看到:

  

kwargs {'customer_id':无,'order_id':'9d41cf4b-b606-461c-bc4e-f7363984782b'}

而不是使用“self.request.session.get('user_id')”如果我键入实际值,如:

  

customer_identity ='XXXX'

我可以看到查询有效。我无法对此值进行硬编码,但不确定如何从view.py中的会话存储中提取“XXXX”。在此先感谢您的帮助!

我在解决这个问题后还有另外一个问题:

实际上 order_id 也不会被硬编码和查询

  

all_entries = CompleteOrderList.objects.get(customer_id = customer_identity)

将返回多行。我需要找出一种方法将这些放入数组类型的东西中并在模板中使用它,如

<div class="container_order">
    <i class="fa fa-file-text fa-3x">{{ all_entries.first_row }}</i>
</div>
<div class="container_order">
    <i class="fa fa-file-text fa-3x">{{ all_entries.second_row }}</i>
</div> 
...

对此的任何建议/帮助也非常感谢。希望我不要求太多。我不希望被视为要求其他人编写整个代码,但我花了几个小时来弄清楚如何做到这一点并且失败了!希望有经验的django用户可以与我分享这些有价值的信息!

谢谢!

@Daniel Roseman 它设置在另一个模板中,如下所示,我通过chrome dev工具调查确认 user_id 在SessionStorage中存在正确的值。

if (idToken) {
      lock.getProfile(idToken, function (err, profile) {
        if (err) {
          return alert('There was an error getting the profile: ' + err.message);
        }
        // Display user information
        $('#name').text(profile.name);
        $('#email').text(profile.email);
        $('#user_id').text(profile.user_id);  
        $('#nickname').text(profile.nickname); 
        sessionStorage.setItem('user_id', profile.user_id);
      });
    }; 

0 个答案:

没有答案