1

私は Django を初めて使用し、Web プログラミング全般にあまり詳しくありません。そのため、私が気付いていない問題を簡単に修正できる可能性が非常に高いです。

私の Web アプリはフォト ギャラリーです。写真をクリックすると拡大版が表示され、両側に古い写真または新しい写真のボタンが表示されます。さらに、ギャラリー内の写真は、URL パラメーターとして渡されるタグで並べ替えることができます。

私の問題は、送信ボタンの 1 つをクリックすると、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/')
4

1 に答える 1

1
<form action="/gallery/view/{{ photo.id }}/" method="get">
    {% if has_newer %}
    <input type="submit" name="newer" value="Newer">
    {% endif %}

    <!--This will append a tag parameter with given value to the querystring -->
    <input type="hidden" name="tag" value="{{ tag }}">

    <img src="{{ photo.photofile.url }}">

    {% if has_older %}
    <input type="submit" name="older" value="Older">
    {% endif %}
</form>

クエリ文字列はaction(使用されないため)から削除され、パラメーターoldernewerパラメーターは引き続き送信されることに注意してください。

于 2012-12-01T05:02:46.157 に答える