Djangoã®ã¢ããªã±ã¼ã·ã§ã³ã§ãmodels.pyã®ã³ã¼ãéãå¤ããªã£ã¦ããã®ã§ãè¤æ°ã®ãã¡ã¤ã«ã«åå²ãã話ã
ãããã©ãããããã®ã§æ¸ãã¦ããã試ããã®ã¯Python2.7ãDjango1.4ã
testapp/ __init__.py models.py
models.py
from django.db import models class Foo(models.Model): value = models.IntegerField() class Bar(models.Model): value = models.IntegerField()
modelsããã£ã¬ã¯ããªã«ãã
ã¾ããmodels.pyã¨åããã£ã¬ã¯ããªé層ã«modelsãã£ã¬ã¯ããªãä½æãã__init__.pyã¨models.pyãåå²ãããã®ãç½®ã
testapp/ __init__.py models/ __init__.py foo.py bar.py
foo.py
from django.db import models class Foo(models.Model): value = models.IntegerField()
bar.py
from django.db import models class Bar(models.Model): value = models.IntegerField()
ããã ãã§ã¯ãsyncdbã³ãã³ããªã©ã§ã¢ãã«ãèªèãããªãã
__init__.pyã®ç·¨é
syncdbã³ãã³ããªã©ã§ã¯ã{ã¢ããªã±ã¼ã·ã§ã³å}.modelsã®ãããªååã®ã¢ã¸ã¥ã¼ã«ããModelã¯ã©ã¹ãç¶æ¿ããã¯ã©ã¹ãæ¢ãã¦ãããã¤ã¾ã models/__init__.py ã§åå²ããåã¢ã¸ã¥ã¼ã«ã®ã¢ãã«ãã¤ã³ãã¼ãããããã«ããã°ããã
__init__.py
from testapp.models.foo import Foo from testapp.models.bar import Bar
ãã¦ãããã§åé¡ãªããã¨æããããããä¸ç¹å¤æ´ããªãã¨syncdbã§èªèãããªãã
Meta.app_labelã®å¤æ´
ã¢ãã«ãæå±ããã¢ããªã±ã¼ã·ã§ã³ã®ååãapp_labelã§è¨å®ããå¿
è¦ããããapp_labelãè¨å®ããªãå ´åã¯ãã¢ãã«ãå®ç¾©ãããã¢ã¸ã¥ã¼ã«ã®1ã¤ä¸ã®é層ã®ã¢ã¸ã¥ã¼ã«åã«ãªãã
syncdbãªã©ã®éã«ãã¢ããªã±ã¼ã·ã§ã³åã¨app_labelãä¸è´ããªããã®ã¯èªèãããªãã
foo.py
from django.db import models class Foo(models.Model): value = models.IntegerField() class Meta: app_label = 'testapp'
bar.py
from django.db import models class Bar(models.Model): value = models.IntegerField() class Meta: app_label = 'testapp'
以ä¸ã§syncdbãªã©ã§èªèãããç¶æ ã§modelsãè¤æ°ãã¡ã¤ã«ã«åå²ã§ããã