J'essaie d'utiliser les formulaires ModelForm et inline de Django dans mes modèles. Cependant, je ne trouve aucune documentation qui correspond parfaitement à un modèle de base de données avec plusieurs clés étrangères dans la même table. Ce sont mes modèles:Formulaires en ligne Django avec plusieurs clés étrangères
# models.py
class Universities(models.Model):
name = models.CharField(max_length=100)
class Majors(models.Model):
name = models.CharField(max_length=80)
class Resumes(models.Model):
name = models.CharField(max_length=70)
undergrad = models.ForeignKey(Universities, related_name='undergrad_university')
undergrad_major = models.ForeignKey(Majors, related_name='undergrad_major')
grad = models.ForeignKey(Universities, related_name='grad_university')
grad_major = models.ForeignKey(Majors, related_name='grad_major')
Comment puis-je avoir Django générer un formulaire pour l'envoi des CV où les utilisateurs peuvent taper dans leur nom de l'université et les grands? Tous les quatre seraient utilisés pour créer de nouvelles entrées dans leurs bases de données respectives (2 dans les universités, 2 dans les majeures) avant d'enregistrer le nouveau CV similaire à la façon dont le inline formset example fonctionne pour une clé étrangère singulière.
Ah J'avais peur qu'un formulaire personnalisé avec une sauvegarde personnalisée soit la seule solution (je commençais à descendre le même chemin avant de poster ma question). La description des formulaires en ligne ModelForms + semblait parfaitement correspondre, mais je suppose que ce n'est pas possible avec mon modèle. Je vais laisser tomber la question pour un autre jour ou deux et j'espère que ce n'est pas le cas avant d'accepter. Je vais également tester le code et vous faire savoir si cela fonctionne. Merci. –
En fait, un formulaire personnalisé vous laissera toujours plus de liberté pour: style d'affichage, type de champs, widget de champs, validateurs et valideurs personnalisés, validation complexe (si vous voulez vérifier les champs entre eux par exemple). Vous pouvez le faire très facilement sous une forme personnalisée, un simple formulaire Django ne permet pas beaucoup de personnalisation. –
Cela ne s'applique pas lorsque le modèle ne parvient pas à enregistrer lorsque les données d'entrée utilisateur ne sont pas validées correctement – Jay