Así que tengo este código debajo de las categorías y a veces lo actualizo agregando una nueva categoría, luego tengo que agregar manualmente esa categoría a la lista en la parte inferior INITIAL_GOAL_CATEGORIES sería mucho más fácil si esta lista se actualizara automáticamente cada vez que creo una nueva variable dict . ¿Hay alguna forma de hacer esto? INITIAL_GOAL_CATEGORIES la variable INITIAL_GOAL_CATEGORIES y la uso en otro lugar, así que si puedo establecer ese nombre de variable en una lista de todas las demás variables, sería genial. Este archivo solo contendrá dictados de categorías y la lista de todos ellos en la parte inferior.
categories.py
# Categories ART = dict(name='Art', emoji='🎨') CULINARY = dict(name='Culinary', emoji='🍳') DIET = dict(name='Diet', emoji='🥗') DIY = dict(name='DIY', emoji='🔨') FINANCE = dict(name='Finance', emoji='💰') FITNESS = dict(name='Fitness', emoji='👟') GAMING = dict(name='Gaming', emoji='🕹️') MARTIAL_ARTS = dict(name='Martial Arts', emoji='🥋') MUSIC = dict(name='Music', emoji='🎵') RELATIONSHIP = dict(name='Relationship', emoji='💗') SELF_CARE = dict(name='Self-Care', emoji='🤗') SELF_IMPROVEMENT = dict(name='Self-Improvement', emoji='✨') STREAMING = dict(name='Streaming', emoji='⏺️') TRAVEL = dict(name='Travel', emoji='✈️') WEIGHT_TRAINING = dict(name='Weight Training', emoji='🏋️') INITIAL_GOAL_CATEGORIES = [ART, CULINARY, DIET, DIY, FITNESS, GAMING, MARTIAL_ARTS, MUSIC, RELATIONSHIP, SELF_IMPROVEMENT, SELF_CARE, STREAMING, TRAVEL, WEIGHT_TRAINING]Si desea crear una lista que se actualice cuando agrega este tipo de valores globales, esto es lo que necesita:
# Categories ART = dict(name='Art', emoji='🎨') CULINARY = dict(name='Culinary', emoji='🍳') DIET = dict(name='Diet', emoji='🥗') DIY = dict(name='DIY', emoji='🔨') FINANCE = dict(name='Finance', emoji='💰') FITNESS = dict(name='Fitness', emoji='👟') GAMING = dict(name='Gaming', emoji='🕹️') MARTIAL_ARTS = dict(name='Martial Arts', emoji='🥋') MUSIC = dict(name='Music', emoji='🎵') RELATIONSHIP = dict(name='Relationship', emoji='💗') SELF_CARE = dict(name='Self-Care', emoji='🤗') SELF_IMPROVEMENT = dict(name='Self-Improvement', emoji='✨') STREAMING = dict(name='Streaming', emoji='⏺️') TRAVEL = dict(name='Travel', emoji='✈️') WEIGHT_TRAINING = dict(name='Weight Training', emoji='🏋️') INITIAL_GOAL_CATEGORIES = [value for name, value in globals().items() if name.isupper()]Esto revisa todos los valores en globals() y verifica si el nombre del valor está en mayúsculas. Si cumplió con los criterios, es una categoría y la agregamos a la lista de categorías.
Pero como se dice en los comentarios: un diccionario es mejor:
# Categories INITIAL_GOAL_CATEGORIES = { 'Art': {'emoji': '🎨'}, 'Culinary': {'emoji': '🍳'}, 'Diet': {'emoji': '🥗'}, 'DIY': {'emoji': '🔨'}, 'Finance': {'emoji': '💰'}, 'Fitness': {'emoji': '👟'}, 'Gaming': {'emoji': '🕹️'}, 'Martial Arts': {'emoji': '🥋'}, 'Music': {'emoji': '🎵'}, 'Relationship': {'emoji': '💗'}, 'Self-Care': {'emoji': '🤗'}, 'Self-Improvement': {'emoji': '✨'}, 'Streaming': {'emoji': '⏺️'}, 'Travel': {'emoji': '✈️'}, 'Weight Training': {'emoji': '🏋️'}, }