AttributeError: '_LinksGroup' object has no attribute 'add'
#3
Oui en effet dans le tutoriel ".add('create_beaver', Beaver)" est erroné, et "add_link()" doit être utilisé à la place. Merci pour le retour, je corrigerai ça.



Citation :Je ne comprends pas aussi 'persons-directory' et 'feautures' à quoi cela correspond.



L'API du menu est un peu complexe, mais cela permet d'avoir un menu construit collaborativement par les différentes apps, de pouvoir modifier le menu depuis une app etc....

Si vous regardez le fichier 'creme/creme_core/apps.py', dans la méthode 'CremeCoreConfig.register_menu()', vous verrez que le core créé 3 groupes principaux:
- 'creme': qui correspond à l'entrée 'Creme' au début du menu.
- 'features': qui correspond à toutes les entrées ajoutées par les apps (principalement les liens vers les vues en listes).
- 'creation'. qui correspond à l'entrée '+Création'

Et dans le fichier 'creme/persons/apps.py', dans la méthode 'PersonsConfig.register_menu()' vous trouvez ce code :
Code :
       directory = creme_menu.get(
           'features',
       ).get_or_create(
           creme_menu.ContainerItem, 'persons-directory', priority=20,
           defaults={'label': _('Directory')},
       ).add(
           URLItem.list_view('persons-organisations', model=Organisation),
           priority=10
       ).add(...)

Il récupère le groupe avec l'ID 'feature' (le groupe principal docn), y créé une entrée/groupe 'persons-directory' ("Annuaire"), puis y ajoute les vues de listes des Sociétés et Contacts.

Le code < creme_menu.get('features', 'persons-directory') > permet donc de récupérer directement le sous-groupe "Annuaire" (on donne la liste des ID -- l'équivalent du chemin d'un fichier par analogie).
  Répondre


Messages dans ce sujet
RE: AttributeError: '_LinksGroup' object has no attribute 'add' - par genglert - 12-11-2020, 20:51

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)