gpt4 book ai didi

python - Django 对象不存在

转载 作者:行者123 更新时间:2023-12-01 06:03:18 24 4
gpt4 key购买 nike

我的views.py中有以下 View :

def MoveSucessfulEntries(request):
if request.method == 'POST':
objectsToBeDeleted = request.POST['imagesToBeRemoved']
for objects in objectsToBeDeleted:
print objects
image = Image.objects.get(id=objects)
SucessfulImage(emailAddress=image.emailAddress, image=image.image, caption=image.caption).save()
return render_to_response('images/selectedSucessful.html')
else:
images = Image.objects.all()
return render_to_response('images/deleteUnsucessfulEntries.html', {'images': images})

imagesToBeRemoved 是 HTML 页面上的复选框,其中包含数据库中图像的 ID,生成如下:

<form method="POST" action="/image/selectSucessful">
{% if images %}
{% for image in images %}
<input type="checkbox" name="imagesToBeRemoved" value="{{image.id}}" /> <image src="../media/{{image.image}}"> <br>
{%endfor%}
<input type="submit" value="Select" />
{% else %}
<p>No images are available.</p>
{% endif %}
</form>

所以我知道从表单返回的 ID 在数据库中,但我不断收到错误对象不存在。我的代码有什么问题吗?

堆栈跟踪表明错误发生在:

image = Image.objects.get(id=objects)

最佳答案

问题是你得到一个字符串

objectsToBeDeleted = request.POST['imagesToBeRemoved']

由于您要发布多个数据,因此您想要的是:

objectsToBeDeleted = request.POST.getlist('imagesToBeRemoved')

字符串是可迭代的,因此您可以迭代每个数字,也就是说,如果您想删除 id 为 345 的项目,它实际上会尝试删除 id 为 3、4 和 5 的项目。

关于python - Django 对象不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com