Andrea
Andrea

Reputation: 20493

Django tables names

I am refactoring a Django application. Specifically, I have an application with a big models.py file and I am trying to split it into a bunch of small files, like

myapp/
    models/
        __init__.py
        somemodels.py
        someothers.py
        somemore.py
        ...

and in models/__init__.py I import all models from all other files so that I do not have to change client code.

The problem is that Django now complains about table names. Table for model Foo used to be myapp_foo, but it seems that Django now looks for a table myapp.models_foo. That is, it seems that it uses as prefix the package where the models are defined instead of their application (of course myapp.models is not registered as a Django application).

I know I could manually set the table name for each and every models, but is there a way to avoid this and tell Django that these models are actually part of myapp?

Upvotes: 0

Views: 286

Answers (1)

DrTyrsa
DrTyrsa

Reputation: 31951

Use Meta.app_label

Upvotes: 2

Related Questions