How do I separate my models out in django?

Solution 1:

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

Solution 2:

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.*