在 Django 中从外键设置会话变量:需要字段名而不是主键
Posted
技术标签:
【中文标题】在 Django 中从外键设置会话变量:需要字段名而不是主键【英文标题】:Setting session variable from foreign key in Django: Need field name instead of primary key 【发布时间】:2014-01-17 18:30:50 【问题描述】:我认为这应该很简单,但我似乎无法找到我正在寻找的答案。我正在根据模板中的外键/下拉设置会话变量。会话变量保存为主键而不是字段名。我该如何改变?
型号:
class Verbs(models.Model):
verb = models.CharField(max_length=20)
def __unicode__(self):
return self.verb
class MyVerbs(models.Model):
verb = models.ForeignKey(Verbs)
表格:
class MyVerbForm(forms.ModelForm):
class Meta:
model = MyVerbs
观看次数:
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 会话(请求): myvariable = request.session['myverb'] 上下文 = 'myvariable': myvariable return render_to_response('base.html', context, context_instance=RequestContext(request))
【问题讨论】:
【参考方案1】:你应该调用form.is_valid()
然后从form.cleaned_data
而不是request.POST
获取值。
【讨论】:
页面现在加载,但是当我提交时,我现在收到以下错误:以上是关于在 Django 中从外键设置会话变量:需要字段名而不是主键的主要内容,如果未能解决你的问题,请参考以下文章