2012-04-15 11 views
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('??????') 

QUESTION

テンプレート:コードがあります親ページにchangeseen?とboolの値を変更するよりエレガントな方法があれば?

答えて

0

あなたがエレガントにしたい場合は、changeseenビューにAJAX GETと表示されていると考えることができます。

0

あなたこれは設定、あるいは有効されるという保証はありません(req.META['HTTP_REFERER']介してアクセス可能な、HTTPのRefererフィールドに)HTTPリファラーを使用することができますが。私はあなたが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へのリダイレクト、オフサイトへのリダイレクトなど)は、メインムービーページのようなデフォルトの場所にリダイレクトするだけです。

関連する問題