Je veux obtenir des données à partir de 2 tables en une forme en utilisant ModelForm, comme ceci:django insérer des données à partir de 2 tables en utilisant une seule ModelForm
modèle poing:
class Cv(models.Model):
created_by = models.ForeignKey(User, blank=True)
first_name = models.CharField(('first name'), max_length=30, blank=True)
last_name = models.CharField(('last name'), max_length=30, blank=True)
url = models.URLField(verify_exists=True)
picture = models.ImageField(help_text=('Upload an image (max %s kilobytes)' %settings.MAX_PHOTO_UPLOAD_SIZE),upload_to='avatar')
bio = models.CharField(('bio'), max_length=180, blank=True)
expertise= models.ForeignKey(Expertise, blank=True)
date_birth = models.DateField()
second modèle:
class Expertise(models.Model):
user = models.ForeignKey(User, blank=True)
domain = models.CharField(('domain'), max_length=30, blank=True)
specialisation = models.CharField(('specialization'), max_length=30, blank=True)
degree = models.CharField(('degree'), max_length=30, blank=True)
year_last_degree = models.CharField(('year_last_degree'), max_length=30, blank=True)
lyceum = models.CharField(('lyceum'), max_length=30, blank=True)
faculty = models.CharField(('faculty'), max_length=30, blank=True)
references = models.CharField(('references'), max_length=30, blank=True)
workplace = models.CharField(('workplace'), max_length=30, blank=True)
alors je dois en forms.py
class CvForm(ModelForm):
class Meta:
model = Cv
fields = ['first_name','last_name','url','picture','bio','date_birth']
class ExpertiseForm(ModelForm):
class Meta:
model = Expertise
fields = ['domain','specialisation']
Le point est que je voudrais avoir les deux formes dans une seule forme, et un seul soumettre bien sûr. Donc, je suppose que je devrais utiliser une seule classe de type ModelForm. Mais ça ne marche pas (si je mets aussi l'expertise dans le CvForm). Mon formulaire est créé automatiquement à partir de la classe ModelForm, c'est pourquoi je veux faire une seule classe => un seul formulaire.
Aide PLSS, Merci beaucoup
merci beaucoup, je vais essayer et puis je vais dire si je réussis :) – dana
Argh, juste remarqué que vous avez réellement la clé étrangère dans l'autre sens, de CV à Expertise. Êtes-vous sûr que c'est ce que vous voulez dire? Cela implique que chaque expertise possède plusieurs CV. –
non, j'ai compris que j'avais tort. J'ai fait alors deux autres tables: -Université et -Workplace, pour chaque CV (je suppose que faire ces tables est le seul moyen, puisque j'ai une relation plusieurs à plusieurs (entre les utilisateurs et les universités, et entre les utilisateurs et les lieux de travail)) le seul problème est maintenant: le comportement django pour beaucoup de relations est de mettre une liste déroulante dans ma forme.je veux aussi que l'utilisateur ait un champ de texte, si l'université par exemple n'est pas dans la liste: D – dana