Django错误:基数为10的int()的文字无效:''在尝试删除待办事项列表项时

时间:2014-03-26 20:04:16

标签: django

我正在尝试制作简单的待办事项列表,用户可以在其中添加或删除列表项。添加一切工作正常,但当我试图删除项目没有任何反应或我得到erorr:无效的文字为int()与基数10:''

代码:

#Views.py

def tasks(request):
    comments = Comment.objects.all()
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if "add" in request.POST:
            if form.is_valid():
                save_it = form.save()
        if "delete" in request.POST:
            comments_id = request.POST['idcomment']
            comments_object = Comment.objects.get(id=comments_id)
            comments_object.delete()
        return render(request, 'task-form.html', {
        'form': form, 'comments': comments,
        })
    else:
        form = CommentForm()
    return render(request, 'Task-form.html', {
        'form': form, 'comments': comments,
        })

Django模板是:

<html>
<head>
    <title>Tasks</title>
</head>
<body>
<h1>Tasks</h1>
<form action="" method="post">
{{ form.as_p }}
<input type="submit" name="add" value="add">
{% for a in comments %}
    <h3>{{ a.body}}</h3>
    <input type="submit" name="delete" value="delete" />
    <input type="hidden" name="idcomment" id="{{a.id}}" />
{% endfor %}
{% csrf_token %}
</form>
</body>

</html>

我的错误在哪里?

1 个答案:

答案 0 :(得分:3)

此错误是因为comments_id是一个空字符串,因为request.POST['idcomment']是一个空字符串,并且您无法将空字符串转换为int(这是您执行操作时会发生的情况) Comment.objects.get(id=comments_id))。它为什么空?让我们看看你的模板:

<input type="hidden" name="idcomment" id="{{a.id}}" />

您为输入提供了ID,但您从未给它输入值。试试这个:

<input type="hidden" name="idcomment" id="{{a.id}}" value="{{a.id}}"/>