furmeet_events/webproj/adminModelRegister.py

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)