31 lines
872 B
Python
31 lines
872 B
Python
from django.db import models
|
|
from .stackOverflowSnippets import classesInModule
|
|
from django.core import exceptions
|
|
from sys import stderr
|
|
|
|
|
|
def only_models(user_made_models):
|
|
return [model for model in user_made_models if models.Model in model.__mro__]
|
|
|
|
|
|
def is_abstract(clazz):
|
|
return clazz._meta.abstract
|
|
|
|
|
|
def discard_abstract_models(user_made_models):
|
|
return [model for model in user_made_models if not is_abstract(model)]
|
|
|
|
|
|
def registrable_models_in_module(module):
|
|
return discard_abstract_models(only_models(classesInModule(module)))
|
|
|
|
|
|
def register_for_me(admin, models_module):
|
|
for model in registrable_models_in_module(models_module):
|
|
try:
|
|
admin.site.register(model)
|
|
except exceptions.ImproperlyConfigured:
|
|
pass
|
|
except Exception as e:
|
|
print(str(e.__class__)+': '+str(e), file=stderr)
|