allauthのLoginカスタマイズ

all-authをインストールした仮想環境(以下の場合”venv”)のall-authのテンプレートをすべて、自作アプリのテンプレートフォルダにコピーします。
venv/lib/python3.x/site-packages/allauth/templates/account
→ templates/allauth/account

次に、settings.pyの”TEMPLATES”に以下の☆を加えます。
TEMPLATES = [
    {
        ‘BACKEND’: ‘django.template.backends.django.DjangoTemplates’,
        ‘DIRS’: [
            os.path.join(BASE_DIR, ‘templates’, ‘allauth’),   ☆追加
            os.path.join(BASE_DIR, ‘templates’),
        ],
  …
あとは、templates/allauth/account配下のlogin.htmlを修正すればカスタマイズ可能です。

DegitalOceanでのVSCode

degitaloceanでVSCode使おうとしてはまったので備忘録。

最初のイメージとしては、ターミナルの中から起動するイメージだったのですがクライアントのVSCodeを起動してアクセスする方式にしました。
(この方式だとPUTTYのターミナルはあまり必要なくなりました。)
躓いたのは、公開鍵の持ち方です。
・普通のフォルダに鍵ファイルを置いて指定すると怒られる。
 (ユーザフォルダなどに置くと良い)
・PUTTYGenで作成した公開鍵をOpen形式に変換したファイルを指定する必要がある。
 (PUTTYGenに変換機能あり)
の2点です。
詳しくは後程追記します。

Ubuntuのmigrateで失敗する

Windows10の環境で作成した、ユーザ認証用のDjangoライブラリ(django-allauth)を使用したプロジェクトをDegitalOceanにデプロイする際にはまったので備忘録です。
まず、
>python manage.py makemigrations
を実行すると
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration account.0001_initial is applied before its dependency accounts.0001_initial on database ‘default’.
などのエラーが表示されます。
どうもallauthで作成されるモデルが作成されていないため、作成さていないテーブルへカスタマイズ用の定義を追加しようとしたため、順番が違うよと言われているようだったので、再実行すると基本のテーブルが作成されているにも関わらず、カスタマイズ用のテーブルが作成されなくなりました。
>python manage.py showmakemigrations
でスケジュールを見てみると

account
[X] 0001_initial
[X] 0002_email_max_length
admin
[X] 0001_initial
[X] 0002_logentry_remove_auto_add
[X] 0003_logentry_add_action_flag_choices
auth
[X] 0001_initial
[X] 0002_alter_permission_name_max_length
[X] 0003_alter_user_email_max_length
[X] 0004_alter_user_username_opts
[X] 0005_alter_user_last_login_null
[X] 0006_require_contenttypes_0002
[X] 0007_alter_validators_add_error_messages
[X] 0008_alter_user_username_max_length
[X] 0009_alter_user_last_name_max_length
[X] 0010_alter_group_name_max_length
[X] 0011_update_proxy_permissions
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
sessions
[X] 0001_initial
sites
[X] 0001_initial
[X] 0002_alter_domain_unique
socialaccount
[X] 0001_initial
[X] 0002_token_max_lengths
[X] 0003_extra_data_default_dict
と表示され、カスタマイズテーブルは無視されています。
そこで個別にmigrateしようとおもい、

>python manage.py makemigrations xxxx
(xxxx はアプリ名)
を実行すると、今度は
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration socialaccount.0001_initial is applied before its dependency accounts.0001_initial on database ‘default’.
と怒られます。
仕方ないので、env/lib/python3.8/…/socialaccount/migrationsの下を__init__.py以外を削除して実行すると今度は
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration account.0001_initial is applied before its dependency accounts.0001_initial on database ‘default’.
と怒られたので、同様にaccount/migrationsの下も__init__.py以外を削除。
これでやっと
>python manage.py makemigration xxxx
が成功しました。
書いてみると単純そうだけど、試行錯誤してる最中はもう直接create tableしちゃおうかとも思ったけれど、migrateの恩恵にあずかると、楽したくなるなあと思う今日この頃です。