Les relations dans Creme [résolu]
#2
Citation :Error in creme_core.Relation.save(): (1048, "Column 'subject_entity_id' cannot be null")

L'erreur est assez limpide : vous essayez de créer une instance de Relation dont l'attribut 'subject_entity' est à None. En effet dans le partial et dans son appel, vous définissez 2 fois 'object_entity', mais avec 2 valeurs différentes, mais jamais 'subject_entity' (il est donc à None), ce qui me fait dire qu'un des 2 devrait être le subject_entity (mais pas au hasard hein, cela dépend de la définition de votre RelationType).

Citation :NB J'ai par ailleurs bien défini une relation entre « REL_OBJ_PART_2_CHECKUP » et une relation créée via Creme (« creme_config-object_userrelationtype2 »).

Je n'ai pas compris ce que vous voulez dire. Une Relation est créée entre 2 CremeEntity. REL_OBJ_PART_2_CHECKUP n'en est sûrement pas une (j'imagine que c'est une string) et une Relation n'est pas une CremeEntity non plus. Donc créer une Relation entre 2 choses qui ne peuvent être reliées, je ne vois pas.

Citation :j'ai créé des champs manytomanyfields. Dans le formulaire, ils apparaissent bien, dans la base, ils sont bien remplis avec les bonnes relations mais quand je demande la vue en détail, ce sont les seuls à ne pas apparaître.

En effet le bloc objet par défaut n'affiche pas les ManyToManyFields. En effet, en générale on va plutôt mettre dans la vue en détail un bloc correspondant à ce M2M, avec la possibilité d'enlever et d'ajouter des éléments (voir les MailingLists dans les Campagnes d'Emails pour l'exemple) ; le M2M est alors aussi enlevé du formulaire d'édition, afin de gérer des grands nombres d'éléments sans surcharger le formulaire d'édition. Après vous avez aussi le choix de surcharger le bloc objet (voir Contact et Ticket dans les blocks.py idoines), afin d'afficher le M2M dans le template associé au bloc.

Citation :j'ai bien eu l'étape ou j'ai dû choisir les éléments à afficher, mais c'est suite à cela que l'erreur est apparue. Depuis, pas moyen de réinitialiser mon choix (or c'est peut-être là que j'ai fait une erreur), ou de le modifier manuellement.

Difficile de dire où se situe le problème avec si peu d'informations. Vous pouvez supprimer des colonnes de la vue en liste en allant supprimer dans la base de donnée (avec l'outil adéquat, par exemple PHPMyAdmin avec MySQL, ou avec le shell django) les instances gênantes de HeaderFilterItem (table creme_core_headerfilteritem) associées à votre vue de liste ; voire toute la vue en liste gênante (HeaderFilter, table creme_core_headerfilter) correspondant à votre ContentType checkup.
  Répondre


Messages dans ce sujet

Atteindre :


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