django вставляет данные из 2 таблиц, используя одну ModelForm - PullRequest
0 голосов
/ 20 мая 2010

Я хочу получить данные из 2 таблиц в форму, используя ModelForm, например:

Модель кулака:

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()

вторая модель:

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)

тогда у меня есть в 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']

Дело в том, что я хотел бы объединить обе формы в одну форму и, конечно же, в одну отправку. Итак, я думаю, что я должен использовать один класс типа ModelForm. Но это не работает (если я добавлю экспертизу в CvForm тоже). Моя форма создается автоматически из класса ModelForm, поэтому я хочу сделать один класс => одну форму.

Помогите пожалуйста, Большое спасибо

1 Ответ

1 голос
/ 20 мая 2010

Поскольку существует внешний ключ от экспертизы к CV, потенциально может быть несколько экспертиз для каждого резюме. Таким образом, вы должны включить это, используя inline formsets .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...