views:

21

answers:

1

Hi there, I want to get data from 2 tables into a form using ModelForm, like this:

fist model:

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 model:

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)

then i have in 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']

The point is that i would want to have the both forms into one single form, and a single submit of course. So, i guess i should use a single ModelForm type class. But it doesn't work (if i put the expertise in the CvForm too ). My form is created automatically from the ModelForm class, that's why i want to make a single class = > a single form.

Help plss, Thanks a lot

+1  A: 

Since there is a foreign key from Expertise to CV, there are potentially multiple expertises for each cv. So you should enable that by using inline formsets.

Daniel Roseman
thanks a lot, i'll try and then i'll say if i succeed :)
dana
Argh, just noticed you actually have the foreign key the other way round, from CV to Expertise. Are you sure that's what you mean? It implies each expertise has multiple CVs.
Daniel Roseman
nope, i've figured out i was wrong. i've made then two other tables:-University and -Workplace, for each CV (i guess making those tables is the only way, since i have a many to many relation (between users an univeristies,and between users and workplaces)) the only problem is now : django behaviour for many to many relations is to put a drop down list in my form.i also want the user to have a textfield, if the university for example is not in the list:D
dana