furmeet_events/webproj/adminModelRegister.py

31 lines
872 B
Python
Raw Permalink Normal View History

2019-05-31 06:03:43 +00:00
from django.db import models
from .stackOverflowSnippets import classesInModule
from django.core import exceptions
from sys import stderr
2022-08-20 14:45:14 +00:00
def only_models(user_made_models):
return [model for model in user_made_models if models.Model in model.__mro__]
2019-05-31 06:03:43 +00:00
2022-08-20 14:45:14 +00:00
def is_abstract(clazz):
2020-01-09 21:00:04 +00:00
return clazz._meta.abstract
2019-05-31 06:03:43 +00:00
2022-08-20 14:45:14 +00:00
def discard_abstract_models(user_made_models):
return [model for model in user_made_models if not is_abstract(model)]
2019-05-31 06:03:43 +00:00
2022-08-20 14:45:14 +00:00
def registrable_models_in_module(module):
return discard_abstract_models(only_models(classesInModule(module)))
2019-05-31 06:03:43 +00:00
2022-08-20 14:45:14 +00:00
def register_for_me(admin, models_module):
for model in registrable_models_in_module(models_module):
2019-05-31 06:03:43 +00:00
try:
admin.site.register(model)
except exceptions.ImproperlyConfigured:
pass
2022-08-20 14:45:14 +00:00
except Exception as e:
2019-05-31 06:03:43 +00:00
print(str(e.__class__)+': '+str(e), file=stderr)