Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can i get all models in django 1.8

I am using this code in my admin.py

from django.db.models import get_models, get_app

for model in get_models(get_app('myapp')):
    admin.site.register(model)

But i get warning that get_models is deprecated

How can i do that in django 1.8

like image 811
user3214546 Avatar asked Apr 20 '15 03:04

user3214546


People also ask

How do you get all related models in Django?

get_fields() returns only relations accessible from user, however, you may have some related object, which uses related_name='+'. In such case, the relation would not be returned by user. _meta. get_fields().

How do I find models in Django?

In Django 1.7+ it is better to use get_model() on the Django app registry, which is available via django. apps. apps. get_model(model_name) .

Is there a list field for Django models?

The most important part of a model and the only required part of a model is the list of database fields it defines. Fields are specified by class attributes. Be careful not to choose field names that conflict with the models API like clean, save, or delete.


1 Answers

This should work,

from django.apps import apps
apps.get_models()

The get_models method returns a list of all installed models. You can also pass three keyword arguments include_auto_created, include_deferred and include_swapped.

If you want to get the models for a specific app, you can do something like this.

from django.apps import apps
myapp = apps.get_app_config('myapp')
myapp.models

This will return an OrderedDict instance of the models for that app.

like image 57
Rod Xavier Avatar answered Oct 04 '22 18:10

Rod Xavier