我有一个模板,其中有一个按钮,只将按钮的名称发布到具有以下代码的视图中:
if request.POST:
a = request.POST
name = mymodel.objects.get(id = a )[0]
return HttpResponse(name)
request.POST具有提交帖子的按钮的名称。错误是:int()参数必须是字符串或数字,而不是'QueryDict'
然而,当我这样做:a = request.POST['name]
时,django在帖子错误中引发了一个没有“名字”。我该如何解决这个问题?
答案 0 :(得分:3)
这将返回一个QueryDict(类似于python字典),其中包含数据 request.POST
无论如何
request.POST['name']
应该有效。 我会说在它里面没有关键的'名字'。它可能被称为'id_name'或类似的东西。
使用调试器或print语句查看查询dict的内容:
print request.POST
答案 1 :(得分:1)
想象一下,您的模板中包含以下代码: -
<form>
<button type="submit" name="option_one" value="option_one">Option One</button>
<button type="submit" name="your_second_option" value="your_second_option">2nd Option</button>
</form>
您可以在视图中执行此操作: -
def your_view(request):
if request.POST.has_key('option_one'):
#do your stuff
if request.POST.has_key('your_second_option'):
#do other stuff
答案 2 :(得分:0)
最简单的方法是使用隐藏字段。按钮不是移动数据的好方法。
答案 3 :(得分:0)
我知道,您正在尝试从列表中获取第一个对象,所以应该是:
mymodel.objects.getlist(id = a )[0]