How do I separate my models out in django?
I'm trying to learn p开发者_Python百科ython/django.
Right now, I have all of my models in models.py
Is it possible to have my models broken out so that I can have a single file per model in a separate models folder so that I can do something like:
~/myproject/myapp/models/user.py ~/myproject/myapp/models/group.py
Thanks
It is possible, just make sure to import all the models you create in __init__.py
in your models
directory. In your case, it would look like this:
# __init__.py
from .user import UserModel
from .group import GroupModel
This needs to be done because Django looks in app.models
for an app's models.
As others have mentioned, for versions of Django prior to 1.7, you'll also need to specify your app's name in the app_label
attribute in the Meta
class in your model:
class UserModel(models.model):
# fields here
class Meta:
app_label = "myapp"
http://docs.djangoproject.com/en/1.7/ref/models/options/#app-label
You could have a folder called models
but then in each model class you'll need to include:
class Meta:
app_label="appname goes here"
ps. Don't forget a __ init__.py
file like I always do.
in the models folder you create the file __init__.py
you import your class in it.
ex : myproject/myapp/models/__init__.py
from .myfile import myclass
精彩评论