ILoveYAnny
@ILoveYAnny

Как в ModelForm использовать поля из разных моделей?

Всем добрый день или утро. Ребят, вопрос глупый, но я только учусь, а в доках я на нашёл решения.
Суть такова, есть 2 модели у них есть свои поля. Одна модель хранит в себе Title и Description, другая Изображение. Дак вод, мне нужна форма, в которой я смогу создать новый итем, заполнив все эти поля и загрузив изображение.

Я делаю ModelForm

class SlideForm(forms.ModelForm):

  class Meta:
            model = Slide
            fields = ('title', 'center', 'align_title_in_image', 'slug')


Всё работает отлично, но мне нужно добавить поле для загрузки изображения из другой модели, первое что пришло в голову

class SlideForm(forms.ModelForm):
  class Meta:
            model = Slide
            fields = ('title', 'center', 'align_title_in_image', 'slug')

class ImageSlideForm(forms.ModelForm):
  class Meta:
            model = SlideImage
            fields = ('image',)


Но как их правильно описать во вьюхе ? Вот такой подход, выводит только первый класс, а класс для изображений нет

def add_slide(request):
        form = SlideForm(), ImageSlideForm()	
        return render_to_response("add_slide.html",{'form': form},context_instance=RequestContext(request))
  • Вопрос задан
  • 492 просмотра
Решения вопроса 2
sim3x
@sim3x
def add_slide(request):
        slide_form = SlideForm()
        image_slide_form = ImageSlideForm()	
        return render(request, "add_slide.html", 
                   {'slide_form': slide_form, 
                    'image_slide_form': image_slide_form})


https://docs.djangoproject.com/en/1.9/topics/forms...
<form>
{% csrf_token %}
{{ slide_form.as_p }}
{{ image_slide_form.as_p }}
<button type="submit">submit</button>
</form>
Ответ написан
правило простое: новая модель - новая форма
у джанги есть такая штука, на этот случай - Formsets
почитать внимательно нужно этот раздел
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы