我对 Django 很陌生,而且对一般的网络编程不是很熟悉,所以很可能有一个简单的方法可以解决我不知道的问题。
我的网络应用程序是一个照片库。人们可以单击照片以查看放大版本,其中任一侧的按钮用于显示较旧或较新的照片。此外,图库中的照片可以按标签排序,标签作为 URL 参数传递。
我的问题是,当我单击其中一个提交按钮时,Django 将我的 URL 中的参数替换为按钮的名称,从而破坏了我对所使用标签的引用。例如,“127.0.0.1:8000/gallery/view/6/?tag=people”在单击下一步时,在尝试时转换为“127.0.0.1:8000/gallery/view/6/?older=Older”处理网址。
我的 HTML 中的代码:
<form action="/gallery/view/{{ photo.id }}/?tag={{ tag }}" method="get">
{% if has_newer %}
<input type="submit" name="newer" value="Newer">
{% endif %}
<img src="{{ photo.photofile.url }}">
{% if has_older %}
<input type="submit" name="older" value="Older">
{% endif %}
</form>
在我的 view.py 中,我在 render_to_response 中传递了标签和其他信息,但我不确定如何/是否可以在处理按钮时回收它。
render_to_response('item/view.html', {'photo':photo, 'tag':tag, 'related_tags': related_tags, 'related_photos': related_photos, 'has_newer': has_newer, 'has_older': has_older}, context_instance=RequestContext(request))
这是处理按钮的 view.py 代码:
if 'newer' in request.GET:
if has_newer:
return HttpResponseRedirect('/gallery/view/%s/?tag=%s'%(newer[1].id, tag))
else:
return HttpResponseRedirect('/gallery/')
if 'older' in request.GET:
if has_older:
return HttpResponseRedirect('/gallery/view/%s/?tag=%s'%(older[1].id, tag))
else:
return HttpResponseRedirect('/gallery/')