見出し画像

django初心者が詰まりやすいエラー解決メモ

SuperUser作成後のmigrationでエラーが出る時の最終手段

(webapp_env) noMacBook-Pro mywebsite % python manage.py showmigrations
accounts
 [ ] 0001_initial
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
 [X] 0012_alter_user_first_name_max_length
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
sessions
 [X] 0001_initial

makemigrationsやmigrate、runserverを起動しようとしてもno module installedなどが出て行き詰まってしまった場合は、db.sqlite3のファイルとmigrationsの中にある__init__.py以外のファイルを削除して上記の[×]を一旦全てリセットする。

accounts
 [ ] 0001_initial
admin
 [ ] 0001_initial
 [ ] 0002_logentry_remove_auto_add
 [ ] 0003_logentry_add_action_flag_choices
auth
 [ ] 0001_initial
 [ ] 0002_alter_permission_name_max_length
 [ ] 0003_alter_user_email_max_length
 [ ] 0004_alter_user_username_opts
 [ ] 0005_alter_user_last_login_null
 [ ] 0006_require_contenttypes_0002
 [ ] 0007_alter_validators_add_error_messages
 [ ] 0008_alter_user_username_max_length
 [ ] 0009_alter_user_last_name_max_length
 [ ] 0010_alter_group_name_max_length
 [ ] 0011_update_proxy_permissions
 [ ] 0012_alter_user_first_name_max_length
contenttypes
 [ ] 0001_initial
 [ ] 0002_remove_content_type_name
sessions
 [ ] 0001_initial

おそらく原因としては、accountsより先にadminがmigrateされてしまうことだと思う。settings.pyの'django.contrib.admin'とurls.pyのpath('admin/', admin.site.urls)を一度コメントアウトして、accountsの方を先にマイグレーションし、これらのコメントアウトを戻して、authのマイグレーションを行なったらうまくいった。

#settings.py

INSTALLED_APPS = [
    #'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'accounts.apps.AccountsConfig',
    'toppage.apps.ToppageConfig',
]
#urls.py

from django.contrib import admin
from django.urls import path

urlpatterns = [
    #path('admin/', admin.site.urls),
]


htmlを変更してもrunserver上で内容が更新されない

runserverは問題なく起動しているし、adminや自作のhtmlも表示されるけど、htmlの内容を変更しても更新されない、、m1のターミナルが頻繁に終了するからmac側のこれが原因かと思って再起動やセーフブートを行ったが解決せず。

vscodeを再起動したときだけ内容が更新される、、これは、、vscodeの自動更新がoffになっていたのが原因だった。もしくは保存をしてからサーバーを更新すると変更できた!

ログイン画面作る時のDoesNotExist at /accounts/login/

Site matching query does not exist.

settings.pyで以下を追加する

SITE_ID = 1

この記事が気に入ったらサポートをしてみませんか?