Formulaires mutliples issus de différents modèles

Avec Django 1.8

a marqué ce sujet comme résolu.

Bonjour à tous,

Je me forme à Django, version 1.8 (je n’ai pas trop d’emprise sur la version). Mon projet-jouet pour me former est un gestionnaire de liste de courses. En l’état actuel des choses, le projet contient deux applications, une qui gère les rayons, et l’autre qui gère les produits ; l’idée étant qu’un produit appartient à un rayon et un seul, d’où un ForeignKeyentre les deux modèles, cf. ci-dessous.

Voici l’essentiel du models.py dans l’app rayons :

class Rayon(models.Model):
    nom = models.CharField(max_length=100)

Puis le models.py dans l’app produits :

class Produit(models.Model):
    nom = models.CharField(max_length=100)
    rayon = models.ForeignKey(Rayon)

À l’heure actuelle, ce qui est déjà codé permet de créer, modifier, supprimer des rayons et des produits. Seulement, lorsque l’on crée (ou modifie) un produit, il faut impérativement que le rayon ait été créé en amont, ce qui n’est pas génial niveau ergonomie. Je suis donc à la recherche de pistes qui permettraient, dans le formulaire de création d’un produit, d’avoir une ligne du type « Nouveau rayon », donnant accès au formulaire pour créer un rayon, lequel jouerait rôle de clé étrangère pour le produit.

De manière plus synthétique, lorsque je suis sur le formulaire « Créer un produit », je voudrais pouvoir inclure le formulaire pour créer un rayon, et que tout soit validé avec le même submit.

J’ai un peu fouillé et, dans la doc, j’ai vu des choses sur les formulaires multiples ; mais sauf erreur de ma part, cela permet de dupliquer un même formulaire. Mais je n’ai rien vu sur l’inclusion de formulaires issus d’un modèle différent. Y a-t-il des solutions proposées par Django, ou faut-il mettre les mains dans le cambouis de pour avoir ce genre de choses ?

Merci d’avance. :-)

Salut,

Je n’ai pas grand chose à apporter sur le sujet, mais j’ai déjà remarqué ce type de comportement dans les pages d’administration de Django, où il est possible d’instancier les dépendances en même temps que l’objet que l’on cherche à créer.

Essaie peut-être de voir dans le code de ces pages d’administration comment ils réalisent ça (ou si c’est documenté quelque part).

La solution (si j’ai bien compris le problème) c’est d’utiliser un InlineModelAdmin. La doc est noramelement complète, n’hésite pas si tu as besoin de plus d’information.

PS : 1.8 c’est un peu vieux et surtout pas patché sur la sécu, attention (même si je sais qu’on a pas toujours le choix)

+1 -0

Bonsoir,

Je ne vous ai pas oubliés, mais j’ai besoin d’un peu de temps pour examiner la proposition de @gustavi, et comme je ne suis pas encore très à l’aise, je suis un peu lent. :D

Je reviens vers vous dès que j’ai du nouveau, avec éventuellement des nouvelles questions. Merci à vous deux.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte