0

ブールフィールドの状態を表すために画像を使用しています(openeye.png、closeeye.pngなど)。画像をクリックすると状態が変化し、ページを別の画像で更新する必要があります。これを使用するビューがいくつかあります。コードがあります:

テンプレート-これはmoviegrid.html、movielist.htmlなどです。

{% if movi.seen %}    {# movi.seen is a boolean field #}
    <div id="seen">
        <a href="{% url views.changeseen movi.tmdb_id %}">
             <img src="{{ STATIC_URL }}seen.gif">
        </a>
    </div>
{% else %}
    <div id="seen">
        <a href="{% url views.changeseen movi.tmdb_id %}">
             <img src="{{ STATIC_URL }}not_seen.gif" >
        </a>
    </div>
{% endif %}

views.changeseen

def changeseen(request, id):
    mov=Movi.objects.get(tmdb_id=id)
    mov.seen=not mov.seen
    mov.save()
    return redirect('??????')

質問:から親ページに戻るにはどうすればよいchangeseenですか?そして、ブール値を変更するためのよりエレガントな方法がある場合はどうなりますか?

4

2 に答える 2

0

エレガントにしたい場合はchangeseen、AJAXGETリクエストを考えてビューを呼び出すことができます。

于 2012-04-15T18:32:00.363 に答える
0

HTTP リファラー (HTTP リファラー フィールドで、 からアクセス可能) を使用できますreq.META['HTTP_REFERER']が、これが設定されているか、有効であるという保証はありません。現在のページに関する情報を、次の URL で changeseen に渡すことをお勧めします。

{% if movi.seen %}    {# movi.seen is a boolean field #}
<div id="seen">
    <a href="{% url views.changeseen movi.tmdb_id %}?return_to={{ request.get_full_path }}">
    <img src="{{ STATIC_URL }}seen.gif">
    </a>
</div>
{% else %}
<div id="seen">
    <a href="{% url views.changeseen movi.tmdb_id %}?return_to={{ request.get_full_path }}">
    <img src="{{ STATIC_URL }}not_seen.gif" >
    </a>
</div>
{% endif %}

ユーザーを実際にリダイレクトする前に return_to を検証する必要があります。意味がないように思われる場合 (ログアウト URL へのリダイレクト、オフサイトなど) は、メインのムービーなどのデフォルトの場所にリダイレクトする必要があります。ページ。

于 2012-04-15T18:32:43.547 に答える