我正在尝试制作简单的待办事项列表,用户可以在其中添加或删除列表项。添加一切工作正常,但当我试图删除项目没有任何反应或我得到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>
我的错误在哪里?
答案 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}}"/>