このソーシャル登録/サインアップ ライブラリdjango allauthを私のプロジェクトに使用しました。デフォルトのテンプレートとフォームをカスタマイズして、ルック アンド フィールを向上させるにはどうすればよいですか?
7 に答える
TEMPLATE_DIRS
次のような設定を使用して、プロジェクト レベルのテンプレート ディレクトリを設定したとします。
TEMPLATE_DIRS = [
os.path.join(PROJECT_DIR, 'templates'),
]
ここに表示されているすべてのフォルダーをそのディレクトリにコピーし、必要に応じて編集できるはずです。ほとんどのテンプレートはブロックを埋めているように見えるので、テンプレートでそのブロックをどこかに定義すると{% block content %}
、おそらく最も簡単です。site_base.html
を設定していない場合TEMPLATE_DIRS
は、同じことを行うことができますが、テンプレート フォルダーをtemplates
いずれかのアプリのディレクトリにコピーします。TEMPLATE_DIRS
メインのサイト テンプレートはbase.html
、実際には特定のアプリに属しているわけではないので、そこのように設定して保持することを好みますが、それは単なる好みです。テンプレートローダーはどちらの方法でもそれらを見つける必要があります。
あなたの見解では:
from allauth.account.views import SignupView, LoginView
class MySignupView(SignupView):
template_name = 'my_signup.html'
class MyLoginView(LoginView):
template_name = 'my_login.html'
独自のテンプレートを構築するための例とドキュメントに注意してください。
ただし、テンプレートの例でこの部分を見てください。
<form id="signup_form" method="post" action="{% url 'account_signup' %}">
自分のテンプレートで適切に機能させるには、URL リンクを削除する必要がありました。
<form id="signup_form" method="post" action="">'
github の all-auth の最新バージョンには外部のテンプレートがありますが、Pypi のテンプレートはそうではありません。必要なことは、プロジェクト ディレクトリのリポジトリを複製して、テンプレートをオーバーライドすることだけです。それと同じくらい簡単です。
admin テンプレートのオーバーライドと同じロジックを使用します。
example
アプリケーションを見てください。templates
必要なテンプレートのレイアウトを示すフォルダがあります
インストール後に django-allauth をカスタマイズするには、site-packages からコピーして、プロジェクトの apps ディレクトリに貼り付けます。このようにして、使用されるデフォルトのallauthアプリとそのテンプレートは、プロジェクトのallauthアプリのものになります。次に、socialaccountのsignup.htmlを変更する場合は、apps\allauth\templates\socialaccount\signup.htmlに移動し、'block content' タグ内を編集して変更します。
{% block content %}
// your customized html for signup form
{% endblock %}
これがあなたを助けることを願っています。