Django で、モデルの Meta: managed = False
にすると、他の App からのユニットテストの時、create() などしようとすると
django.db.utils.ProgrammingError: (1146, "Table 'your_app.your_model' doesn't exist")
というエラーが出ます。
./manage.py inspectdb
で作ったモデルをテストしようとする時、よく遭遇します。
その場合、
Simplifying the Testing of Unmanaged Database Models in Django | Caktus Group
このような回避策もありますが、
your_app/tests/__init__.py
import sys
if 'test' in sys.argv:
# テスト用
from ..models import YourModel
YourModel._meta.managed = True
tests/__init__.py にこう書くだけでも充分かな
コメント