DjangoBrothersを参考にメモアプリを作成中のこと。
マイグレーションファイルを作成しようとしたらAttributeErrorが発生した。
解決策としては、まずはスペルミスを疑うこと。
今回は大文字と小文字の間違いがあったのでそれを修正することで実行できた。
以下、詳細。
models.pyの編集
何をしていたかというと、モデルの設計をしていた。
以下はDjangoBrothersにあるメモモデルの作成部分。
アプリケーションファイルの中にあるmodels.pyを編集したのがこのコード。
1 2 3 4 5 6 7 8 9 10 |
from django.db import models class Memo(models.Model): title = models.CharField(max_length=150) text = models.TextField(blank=True) created_datetime = models.DateTimeField(auto_now_add=True) updated_datetime = models.DateTimeField(auto_now=True) def __str__(self): return self.title |
詳細はDjangoBrothersのページへ。
ここでモデルを設計してマイグレーションファイルの作成とマイグレーションを行うのが次の行程。
マイグレーションファイルの作成でエラー発生
前の項目でアプリケーションファイルの中にあるmodels.pyの中でモデルを作成し終えたので、
ターミナルでマイグレーションファイルを作成しようと以下のコマンドを打ち込んだ。
1 |
$ python manage.py makemigrations |
すると、こんなエラーが発生した。
1 2 3 4 |
・ ・ ・ AttributeError: module 'django.db.models' has no attribute 'model' |
対処
調べてみると、マイグレーションファイルの作成がうまくいかなかったのは単純にスペルミスをしていたからだった。
具体的にミスしていた部分はこの通り。
1 2 |
class Memo(models.Model): 正しい記述 class Memo(models.model): 間違った記述 |
Modelと書くべきところをmodelと小文字で書いていたことが原因だった。
参考サイト
コメント