Python 几个基本的django问题

Python 几个基本的django问题,python,django,django-views,django-sessions,Python,Django,Django Views,Django Sessions,我是django的新手,我需要一些关于我正在编写的代码的示例 我有一个文本框,在同一个模板上有一个输出,这是该模板的视图: def sessiontest(request): a=request.session.get('a',{}) form=sform() return render_to_response('cart.html',{'form':form,'a':a},context_instance=RequestContext(request)) 处理数据的视

我是django的新手,我需要一些关于我正在编写的代码的示例

我有一个文本框,在同一个模板上有一个输出,这是该模板的视图:

def sessiontest(request):
    a=request.session.get('a',{})
    form=sform()
    return render_to_response('cart.html',{'form':form,'a':a},context_instance=RequestContext(request))
处理数据的视图如下所示:

def sessiontest2(request):
 if request.method=="POST":
     form=sform(request.POST)
     if form.is_valid():
         request.session['a']=form.cleaned_data["name"]
         return HttpResponseRedirect(reverse(sessiontest))
如果我只需要存储一个值就可以了,但是如何允许我的请求。会话['a']在每次有新输入时存储多个数据,例如
{value1,value2,new_value,new_value}
?我需要它的格式,我可以显示一个
{%fori在%}
循环在我的模板,并用于过滤我的模型

这只是一个测试代码,稍后我需要将我的产品id存储在其中,并使用它以这种方式过滤我的项目:

items=models.products.objects.filter(pk=request.session["a"])

请给我一些提示,说明如何做到这一点。

如果要从视图中传递模板中的列表,可以使用此
{%for i in a%}
。像查询
items=models.products.objects.filter(pk=request.session[“a”])一样,
将提供一个对象列表,您可以在其中迭代和显示属性。 如果要存储多个项目,可以使用字典进行此操作<代码>请求。会话['a']['value1']='value1'

您可以使用访问模板中的词典

{% for key, val in dict.items %}
    <td>{{ key }}</td>
    <td>{{ val }}</td>
{%  endfor  %}
然后您可以访问它,如
request.session[“a1”]
等,以获取其他值
希望对您有所帮助

如果您正在从视图传递模板中的列表,您可以使用此
{%for i in a%}
。像查询
items=models.products.objects.filter(pk=request.session[“a”])一样,
将提供一个对象列表,您可以在其中迭代和显示属性。 如果要存储多个项目,可以使用字典进行此操作<代码>请求。会话['a']['value1']='value1'

您可以使用访问模板中的词典

{% for key, val in dict.items %}
    <td>{{ key }}</td>
    <td>{{ val }}</td>
{%  endfor  %}
然后您可以访问它,如
request.session[“a1”]
等,以获取其他值
希望对您有所帮助

如果您正在从视图传递模板中的列表,您可以使用此
{%for i in a%}
。像查询
items=models.products.objects.filter(pk=request.session[“a”])一样,
将提供一个对象列表,您可以在其中迭代和显示属性。 如果要存储多个项目,可以使用字典进行此操作<代码>请求。会话['a']['value1']='value1'

您可以使用访问模板中的词典

{% for key, val in dict.items %}
    <td>{{ key }}</td>
    <td>{{ val }}</td>
{%  endfor  %}
然后您可以访问它,如
request.session[“a1”]
等,以获取其他值
希望对您有所帮助

如果您正在从视图传递模板中的列表,您可以使用此
{%for i in a%}
。像查询
items=models.products.objects.filter(pk=request.session[“a”])一样,
将提供一个对象列表,您可以在其中迭代和显示属性。 如果要存储多个项目,可以使用字典进行此操作<代码>请求。会话['a']['value1']='value1'

您可以使用访问模板中的词典

{% for key, val in dict.items %}
    <td>{{ key }}</td>
    <td>{{ val }}</td>
{%  endfor  %}
然后您可以访问它,如
request.session[“a1”]
等,以获取其他值
希望这对您将数据存储为值列表有所帮助。一个简单的方法是:

request.session.setdefault('a', []).append(form.cleaned_data['name'])
如果会话中不存在键
'a'
,则会将空列表设置为默认值,然后将名称附加到新列表或现有列表中。可以使用以下查询来查询这些对象:

Products.objects.filter(id__in=request.session.get('a', []))

您希望将数据存储为值列表。一个简单的方法是:

request.session.setdefault('a', []).append(form.cleaned_data['name'])
如果会话中不存在键
'a'
,则会将空列表设置为默认值,然后将名称附加到新列表或现有列表中。可以使用以下查询来查询这些对象:

Products.objects.filter(id__in=request.session.get('a', []))

您希望将数据存储为值列表。一个简单的方法是:

request.session.setdefault('a', []).append(form.cleaned_data['name'])
如果会话中不存在键
'a'
,则会将空列表设置为默认值,然后将名称附加到新列表或现有列表中。可以使用以下查询来查询这些对象:

Products.objects.filter(id__in=request.session.get('a', []))

您希望将数据存储为值列表。一个简单的方法是:

request.session.setdefault('a', []).append(form.cleaned_data['name'])
如果会话中不存在键
'a'
,则会将空列表设置为默认值,然后将名称附加到新列表或现有列表中。可以使用以下查询来查询这些对象:

Products.objects.filter(id__in=request.session.get('a', []))

最好的方法是创建另一个模型,该模型将存储该会话的会话id,并且该模型将与您的产品对象有许多关系

Models.py

类别存储会话产品(models.Model): products=models.ManytoManyField(products,null=True,related name=“storedproducts”)

现在,在your view.py中,将会话id设置为该会话的已创建Storedsessionproducts #使用会话id检索当前Storedsessionproducts对象 然后从中取出所有产品 session\u id=request.session.get('cart\u id')


最好的方法是创建另一个模型,该模型将存储该会话的会话id,并且该模型将与您的产品对象有许多关系

Models.py

类别存储会话产品(models.Model): products=models.ManytoManyField(products,null=True,related name=“storedproducts”)

现在,在your view.py中,将会话id设置为该会话的已创建Storedsessionproducts #使用会话id检索当前Storedsessionproducts对象 然后从中取出所有产品 session\u id=request.session.get('cart\u id')


最好的方法是创建另一个模型,该模型将存储该会话的会话id,并且该模型将与您的产品对象有许多关系

Models.py

类别存储会话产品(models.Model): products=models.ManytoManyField(products,null=True,related name=“storedproducts”)

现在在your view.py中,将会话id设置为t的创建的Storedsessionproducts