我正在尝试为使用Django构建的内容管理系统中已上传的图像添加编辑功能。
@login_required
def edit(request):
if request.method == 'POST':
ZSN = request.POST['ZSN']
ZSN = 'images/' + ZSN + '.'
image = Images.objects.filter(file__startswith=ZSN)
if image:
for im in image:
pk = im.pk
return render('/photo-edit/', pk)
else:
return HttpResponse("Invalid ZSN.")
else:
return render(request, 'cms/edit.html')
@login_required
def photoedit(request, image_pk):
image = get_object_or_404(Image, pk=image_pk)
return render(request, 'cms/photo-edit.html',{'image':image})
但是由于这一行,return render('/photo-edit/', pk)
我遇到了TemplateDoesNotExist
异常。
Django tried loading these templates, in this order:
Using engine django:
django.template.loaders.filesystem.Loader: /home/shadowsaint/Programs/my_project/templates/190 (Source does not exist)
django.template.loaders.app_directories.Loader: /home/shadowsaint/Programs/my_project/venv/local/lib/python2.7/site-packages/django/contrib/admin/templates/190 (Source does not exist)
django.template.loaders.app_directories.Loader: /home/shadowsaint/Programs/my_project/venv/local/lib/python2.7/site-packages/django/contrib/auth/templates/190 (Source does not exist)
请注意,这里190是要搜索的图像的pk。请帮忙。
答案 0 :(得分:3)
您缺少一个参数,即请求变量。它是这样的:
value
因此,在这种情况下,它会读取您的pk作为模板名称。
答案 1 :(得分:0)
这是不正确的语法return render('/photo-edit/', pk)
,因为/photo-edit/
必须是带有html扩展名的html文件。在这方面,尝试调用其他视图似乎毫无意义。采取photoedit
视图中的内容,然后用它替换return render('/photo-edit/', pk)
。这将按您的期望工作。