About Dynamic Class Attributes
Using __getattr__
on a class, you can define attributes dynamically, for example, coming from a configuration dictionary, JSON file, database, or external API.
class MyConfig(object):
config = settings.MY_CONFIG_DICT
def __getattr__(self, item):
return self.config.get(item)
def get_verbose_name(self):
return (
gettext(self.verbose_name) if self.verbose_name
else gettext("Configuration")
)
Then you can get any value from the class or settings dictionary by doing this:
my_config = MyConfig()
print(my_config.get_verbose_name())
print(my_config.name)
print(my_config.amount)
Also by me
Django Paddle Subscriptions app
For Django-based SaaS projects.
Django App for You
Django GDPR Cookie Consent app
For Django websites that use cookies.
Django App for You