私はDjangoの認証システムと一緒に登録とログイン/ログアウトを管理するためにDjangoの登録を使用しています。それは正常に動作して、私はログインするために別のページにユーザーを連れて行く 'ログイン'リンクを置いている基本テンプレートがあります。このリンクを実際のログインフォーム(ユーザー名/パスワード)に置き換えて、フォームがすべてのページに直接表示されるようにしたいと思います。助言がありますか?ログインフォームをDjangoの全サイトで利用できるようにするには
答えて
あなたは次のようになりますカスタムタグを構築するためにinclusion template tagを使用することができます。
{% login_form %}
ように、それは、ログインビューに?next={{ request.get_absolute_uri }}
パラメータで使用できるように、このタグにrequest.get_absolute_uri
を渡したいかもしれませんログイン後にユーザーを現在のページにリダイレクトすることができます。
このようにして、DRYの原則に違反することなく、テンプレートに任意の場所にログインフォームを置くことができます。あなたも、何か使って、基本テンプレートに埋め込むことができます:あなたのサイトには、HTTP経由で表示され、ログインページがある場合に注意すべきである
{% if not user.is_authenticated %}
{% login_form %}
{% else %}
{# display welcome message. #}
{% endif %}
を参照してくださいどのように私はタグ、任意のヒントのビュー内から要求にアクセスすることができます理解していない? – Bastian
OK、ここから取得しました[アクセスリクエストのdjango-custom-template-tags](http://stackoverflow.com/questions/2160261/access-request-in-django-custom-template-tags) – Bastian
しかし、リクエストにアクセスしても、request.get_absolute_uriをどのように渡すかはわかりません。それを明確にしてもらえますか? – Bastian
基本テンプレート内にログインフォームを埋め込み、ユーザがまだログオンしていない場合にのみ、ログインフォームを表示するためにrequest.user
を自分のサイトのテンプレートに渡します。
だから私のビューのdictに私は'user': request.user
と私のテンプレートが含まれるが、このようになります。
{% if not user.is_authenticated %}
<form><fieldset><!-- Your login form here --></fieldset></form>
{% else %}
<!-- If you want to display something else if the user is logged in, like -->
<p>Welcome, {{ user }}!</p>
{% endif %}
あなたがこれを行う可能性がいくつかの異なる方法:
- お使いのベースのテンプレートを変更し、ハードコードをフォーム(CSRFトークンを忘れないでほんの少しのフィールドです。 )。
- コンテキストプロセッサを使用して、Djangoフォーム変数 をすべてのテンプレートで使用できるようにします。
- カスタムテンプレートタグを作成して フォームを表示し、それをベーステンプレートに使用します。
あなたは、このようなテンプレートにロジックをラップする可能性がよいでしょう:
{% if user.is_authenticated %}
<!-- maybe show a logout link -->
{% else %}
<!-- display your form using one of the methods above -->
{% endif %}
注:auth template context processorを使用している場合は、ユーザー変数は、すべてのテンプレートに利用できるようになります。
- 1. Sharepoint/Webサイトをオンラインで利用できるようにするにはどうすればよいですか?
- 2. IE11でdocument.allを利用できるようにするには
- 3. Djangoのログインフォームは、()ユーザ名はすでに
- 4. MOSSは特定のページをすべてのサイトで利用できるようにする
- 5. サイト全体でHTMLを再利用する方法
- 6. どのように私は、Djangoの異なる2つのログインフォームを作ることができますか?
- 7. C#クラスでデリゲートを利用できるようにする
- 8. テーブルビューでカスタムセルを再利用できるようにする
- 9. Pythonライブラリをrqworkerで利用できるようにする
- 10. 私のWebAppをオフラインで利用できるようにするには?
- 11. python/djangoで利用できるパッケージオプション
- 12. Django:管理者がサイト全体の設定を編集できるようにしますか?
- 13. どのように全帯域幅を利用するのですか?
- 14. $ .get()データをjsで利用できるようにするには?
- 15. phpクラスを関数で利用できるようにするには
- 16. Symfony2:symfony2でphp_intl拡張を利用できるようにするには?
- 17. ユニットテストコードでstdoutリダイレクトを抽出して、他のテストケースで安全に再利用できるようにするにはどうすればよいですか?
- 18. AQGridViewでセルを再利用できないようにする
- 19. Django/MySQLサイトでUTF-8を使用するように設定する
- 20. パーシャルビューを再利用できるようにする
- 21. 電子アプリケーションコンポーネントを再利用できるようにする
- 22. MAMP Proを使用してホームネットワーク全体でローカルサイトを利用できるようにするにはどうすればよいですか?
- 23. javascriptでログインフォームの検証を行うのは安全ですか?
- 24. onResponseメソッドで取得したデータをクラス全体で利用できるようにする
- 25. クロスドメインアクセスでWebサービスを利用できるようにするにはどうすればよいですか?
- 26. @current_userをform.html.eexで利用できるようにするにはどうすればよいですか?
- 27. オンラインでアプリを利用できるようにするにはどうすればよいですか? [Python]
- 28. Djangoテンプレートを再利用するには?
- 29. このコードを再利用できるようにするにはどうすればよいですか?
- 30. Django - 変数内部関数をデータフィルタの外部で利用できるようにする方法
をHTTPS(それがあるべきとして)その後、HTTP - > HTTPS POST CSRFチェックのために失敗する。 https://code.djangoproject.com/ticket/13849またはhttp://groups.google.com/group/django-developers/browse_thread/thread/22058adaf11e3ed6 –