Creation de module : Erreur 500 - enregistrement formulaire
#1
Bonjour,

Je ne peux pas enregistrer une fiche créée avec mon module. Erreur 500.

Je pense avoir suivi la doc exemple correctement Confused .

Si j'essaie de créer un enregistrement directement dans phpmyadmin, j'ai :

Code :
#1452 - Cannot add or update a child row: a foreign key constraint fails (`mabase`.`editors_editor`, CONSTRAINT `editors_editor_cremeentity_ptr_id_xxx_fk_creme_cor` FOREIGN KEY (`cremeentity_ptr_id`) REFERENCES `creme_core_cremeentity` (`id`))


Un peu d'aide me serait bien utile Blush
  Répondre
#2
Bon j'ai trouvé mon erreur.

Comme j'ai changé des noms ou référence par rapport à l'exemple, j'ai oublié de modifier un paramètre.

Dans models/beaver.py


Code :
  def __str__(self):
     return self.name

"name" est à modifier suivant ses paramètres
  Répondre
#3
Citation :Si j'essaie de créer un enregistrement directement dans phpmyadmin [...]

Attention quand même ; les entités sont découpées en 2 parties: la partie CremeEntity pure (table 'creme_core_crementity'), et la table spécifique au type (ex: 'persons_contact'). Les lignes de la seconde table référencent la première, et la première utilise aussi des champ internes (comme celui qui indique le type final -- "Contact" dans mon exemple). Ce n'est donc pas totalement trivial de les créer "à la main" (la commande "python manage.py shell" est là pour ça, et c'est mieux avec 'ipython' d'installé).
  Répondre
#4
Bonjour,

dans l'exemple castor/beaver toute les tables commencent avec "name" en premier champs

Code :
class Beaver(CremeEntity):
   name     = CharField(_('Name'), max_length=100)
   birthday = DateField(_('Birthday'))


Est ce une obligation / une convention ?
  Répondre
#5
Citation :Est ce une obligation / une convention ?

Ni l'un ni l'autre ; c'est juste le cas le plus classique. Après certains types utilisent un champ "title" ; les Contacts ont eux le couple "first_name/last_name".

C'est en général une bonne chose de nommer les fiches, mais vous pourriez tout à fait avoir un usage où c'est inutile/pénible ; vous pourriez aussi avoir un entre deux, comme les Document qui sont capables de déduire leur champ "title" du fichier associé lorsque vous ne leur donnez pas de titre explicitement.
  Répondre


Atteindre :


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