Les relations dans Creme [résolu]
#1
Bonjour,

Décidément, je reviens souvent sur ce forum. Il faut dire que les réponses apportées permettent réellement d'avancer Wink

Aujourd'hui, c'est pour un problème lors de l'enregistrement d'un formulaire.

En effet, j'ai créé un modèle (checkup) supplémentaire dans le module activities avec son propre formulaire et ses vues (création, liste, édition). Je voudrais que ce modèle soit lié à une activité en particulier ainsi qu'à un contact (participant de cette activité).

Voilà ce que j'ai essayé en m'inspirant de ce que vous avez développé pour ActivityCreateForm :

dans le formulaire créé (forms/checkup.py) j'ai défini une fonction save(self) en pensant qu'elle allait créer ces relations, mais il n'en est rien...
Code :
...
participant = MultiCremeEntityField(label=_(u'Participant'), model=Contact, required=False)
...
def save(self):
    create_relation = partial(Relation.objects.create, object_entity=self.checkup,
                              type_id=REL_OBJ_PART_2_CHECKUP, user=self.user
                             )

    for entity in self.cleaned_data['participant']:
        create_relation(object_entity=entity)
Avez-vous une idée ? J'obtiens une erreur 404 avec le message suivant :
Code :
CremeEntity.get_credentials(): Cache HIT for id=25 user=jerome
Error in creme_core.Relation.save(): (1048, "Column 'subject_entity_id' cannot be null")
et le chemin qu'il tente d'afficher est /activities/checkup/None. Sans la fonction, tout fonctionne bien mais la relation ne s'établit évidemment pas.

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 »).

2 questions subsidiaires toujours liées à ce modèle Checkup :
  • - 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.
  • - la vue en liste ne fonctionne pas, l'erreur est la suivante
    Code :
    FieldError: Cannot resolve keyword 'd' into field. Choices are:
    puis viennent toutes les variables définies dans le modèle. J'ai pourtant suivi le carnet du développeur de modules Creme, 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.[/*]
Merci d'avance pour votre aide précieuse.
  Répondre


Messages dans ce sujet

Atteindre :


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