我想在我的网站中使用会话。我设置了follwing设置在settings.py文件:Django会话丢失数据(空)
'django.contrib.sessions', #in the installed apps
和
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
和
'django.contrib.sessions.middleware.SessionMiddleware', # in the midlleware classes
视图代码
def apartamente(request):
form = SearchFormApartamente()
execute_form_process = 0
if request.method == 'POST':
form = SearchFormApartamente(request.POST)
execute_form_process = 1
request.session['apartamente'] = form
request.session['vasea'] = True
request.session.set_expiry(300)
request.session.modified = True
elif 'apartamente' in request.session:
form = searchFormApartamente(request.session['apartamente'])
execute_form_process = 1
# forms.py
class SearchFormApartamente(forms.Form):
thewidget = ColumnCheckboxSelectMultiple()
category = forms.ModelMultipleChoiceField(
queryset=Categorie_Oferta.objects.filter(id__in=[1,2,3,4]),
required=False)
sector = forms.ModelMultipleChoiceField(queryset=Sector.objects.all(),
widget=forms.widgets.CheckboxSelectMultiple, required=False)
min_price = forms.IntegerField(required=False,
widget=forms.widgets.Input(attrs={'class': 'rounded'}))
max_price = forms.DecimalField(required=False)
,但问题是,我尝试在会话中以及何时存储表单我第二次进入视图并尝试从sessiom读取值,会话为空... 可能是什么问题? 在此先感谢!
能否请您发表您的看法码? – Brandon 2013-03-14 21:27:52
为了获得会话,您必须将'get'放在'request.session.get('apartamente')'不是'request.session ['apartamente']'因为这种格式用于存储。总体来说@Brandon的回答是正确的。 – catherine 2013-03-15 11:10:30