1
我對Django非常陌生,並且對一般的Web編程不太熟悉,所以很可能對我的問題有一個簡單的解決方法,但我並不知道。Django URL正在通過提交按鈕進行更改
我的網絡應用程序是一個照片庫。人們可以點擊照片查看放大的版本,在任何一邊都可以看到較舊或較新的照片。另外,圖庫中的照片可以通過標籤排序,這些標籤作爲URL參數傳遞。
我的問題是,當我點擊其中一個提交按鈕時,Django將我的URL中的參數替換爲該按鈕的名稱,從而破壞了我對我使用的標記的引用。例如,「127.0.0.1:8000/gallery/view/6/?tag=people」在單擊旁邊,被轉換爲「127.0.0.1:8000/gallery/view/6/?older=Older」,當它試圖處理URL。從我的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/')
這看起來就像是沒有的伎倆!我完全忘了隱藏的類型,謝謝一堆! (我會盡快接受時間限制,必須要快速回復:)) –