微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从Django会话字典的键中提取值

如何解决无法从Django会话字典的键中提取值

我在django视图中从用户输入表单中保存了一个公司名称的会话变量。当我尝试在以后的视图中使用它时,无论我尝试什么,它都会拉{key:value}对,而不仅仅是值

观看次数

def start(request):
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = QuizTakerForm(request.POST )
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            post = form.save(commit=False)
            post.user = request.user
            post.save()
            request.session['obj_id'] = post.id
            request.session['company_name'] = form.cleaned_data
            # redirect to a new URL:
            return HttpResponseRedirect('industry/')
....

def Gov_q1(request):
    company_name = request.session.get('company_name')
    print(company_name)
    question = Question.objects.get(pk=24)
    context = {'question': question,'company_name': company_name}
    return render(request,'ImpactCheck/detail.html',context)

html:

<h1> Hi my name is {{ company_name }} </h1>
<h1>{{ question.text }}</h1>
<form action="." method="post">

{% for answer in question.answer_set.all %}
      <input type="radio" name="answer" id="answer" value="{{ answer.id }}">
      <label for="answer">{{ answer.answer_text }}</label><br>
  {% endfor %}
  <input type="submit" value="Submit">
  </form>

我也尝试了company_name = request.session ['company_name'],但是两者都呈现为{'company_name':'test_company'}而不是test_company。

解决方法

仅供参考,如果有人遇到类似的问题,我会使用

def Gov_q1(request):
    id=request.session.get('obj_id')
    company_name= QuizTakers.objects.get(pk=id)
    question = Question.objects.get(pk=24)
    context = {'question': question,'company_name': company_name,'cn': cn}
    return render(request,'ImpactCheck/detail.html',context)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。