2012-03-04 9 views
3

私はdjangoウェブアプリケーションを作成しており、ユーザーインターフェースにはjquery-uiを使用しています。私はユーザー登録の世話をするためにdjango登録を使用しています。jquery-uiとDjangoを使用してモーダルログインフォームを作成するには

基本的に、私がやろうとしていることは、別のログインページを持つ代わりに、私はログインページをモーダルダイアログにしてリンクをクリックするようにしました。ポップアップが表示され、そこからログインすることができます。この部分では、jquery-ui modal formを使用していますが、基本的には通常隠されているログインフォームを表示しています。私は、ユーザーがログインを必要とする何かをしたい時はいつでもログインモーダルウィンドウがポップアップしますので

url(r'^$', 
     auth_views.login, 
     {'template_name': 'index.html'}), 

:ページのURLは次のように見える場合

しかし、私はそれが仕事を得ることができます私は複数のページでそれを必要とします。しかし、私はすべてのURLを上記のように見せたくありません。

問題を解決する別の質問がありました:Django authentication and Ajax - URLs that require login 私は答えを完全に理解していません。私はまだDjangoとjavascriptをかなり新しくしているので、もう少しガイダンスを提供できるかどうか疑問に思っていましたか?ここで

フォームの "index.htmlを" の一部です:

<div id="dialog-form" title="LOGIN">  
     <form method="post" action="?next={{ next|default:"/" }}"> 
     {% csrf_token %} 
     <dl> 
     <dt><label for="id_username">Username:</label>{% if form.username.errors %} <span class="error">{{ form.username.errors|join:", " }}</span>{% endif %}</dt> 
     <dd>{{ form.username }}</dd> 
     <dt><label for="id_password">Password:</label>{% if form.password.errors %} <span class="error">{{ form.password.errors|join:", " }}</span>{% endif %}</dt> 
     <dd>{{ form.password }}</dd> 
     <dt><input type="submit" value="Log in" /></dt> 
     </dl> 
     </form> 
    </div> 
    <button id="login">LOGIN</button> 

そして、ここではjavascriptのだ:

<script> 
$(function() { 

    $("#dialog-form").dialog({ 
     autoOpen: false, 
     height: 500, 
     width: 550, 
     modal: true, 
     buttons: { 
      Close: function() { 
       $(this).dialog("close"); 
      } 
     }, 
     close: function() { 
      allFields.val("").removeClass("ui-state-error"); 
     } 
    }); 

    $("#login").click(function() { 
      $("#dialog-form").dialog("open"); 
     }); 
}); 
</script> 

はあなたの助けのために事前にありがとうございます。

答えて

0

以前は一度も行ったことのない完全な回答ではありませんが、フォームはauth_views.loginに投稿リクエストデータを送信します。フォームアクションをこのアドレス+次のデータに設定する必要があります。ログインに成功したらuをリダイレクトします。私はdjango auth soruceを見れば助けになると思います。 djangosites.orgでは、ソースコードを持つプロジェクトを見つけることができます。たとえば、https://github.com/znc-sistemas/python-people - すべてのページにログインフォームの例があります。それは隠されていませんが、それほど重要ではありません。著者は、コンテキストプロセッサを使用して、すべての要求コンテキストデータにログインフォームを配置しています。私はコードを読むことがあなたを助けることができると信じています。

1

ログインモーダルボックスにはjqueryuiを使用できます。私はすでにそれを使用しています。これをチェックしてくださいhttp://jsfiddle.net/paragr/LNBEY/
しかし、この1つを試してみてはいかがですか

関連する問題