Django模型检索给出了错误的类型错误

时间:2010-07-29 16:28:29

标签: django django-models django-forms

我有一个模板,其中有一个按钮,只将按钮的名称发布到具有以下代码的视图中:

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在帖子错误中引发了一个没有“名字”。我该如何解决这个问题?

4 个答案:

答案 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]