[英]Setting session variable from foreign key in Django: Need field name instead of primary key
I think this should be simple, but I can't seem to find the answer I'm looking for. 我认为这应该很简单,但是我似乎找不到要寻找的答案。 I'm setting a session variable based on a foreign key/ drop down in the template.
我正在基于外键设置会话变量/模板中的下拉菜单。 The session variable saves as the primary key instead of the field name.
会话变量另存为主键,而不是字段名。 How do I change this?
我该如何改变?
models: 楷模:
class Verbs(models.Model):
verb = models.CharField(max_length=20)
def __unicode__(self):
return self.verb
class MyVerbs(models.Model):
verb = models.ForeignKey(Verbs)
forms: 形式:
class MyVerbForm(forms.ModelForm):
class Meta:
model = MyVerbs
views: 意见:
def TestSession(request):
request.session['myverb'] = ''
if request.method == 'POST':
form = MyVerbForm(request.POST)
if form.is_valid():
myvariable = form.cleaned_data['verb']
#myvariable = request.POST.get('verb', '')
request.session['myverb'] = myvariable
return HttpResponseRedirect('/')
else:
form = MyVerbForm(request.POST)
context = {'form': form}
return render_to_response('test.html', context, context_instance=RequestContext(request))
def Session(request): myvariable = request.session['myverb'] context = {'myvariable': myvariable} return render_to_response('base.html', context, context_instance=RequestContext(request)) def Session(request):myvariable = request.session ['myverb'] context = {'myvariable':myvariable} return render_to_response('base.html',context,context_instance = RequestContext(request))
您应该调用form.is_valid()
然后从form.cleaned_data
获取值,而不是request.POST
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.