Как объединить две модели в одну единую форму?

#python #django #django-models

#python #django #django-модели

Вопрос:

Возможно ли объединить две разные модели в одну форму? если да, то, пожалуйста, предоставьте мне решение. в принципе, я хочу создать форму, в которую я также могу добавлять изображения, но она не работает так, как я хочу, чтобы она работала.

models.py:

  class Mobile(models.Model):
      brand = models.CharField(max_length=30)
      price = models.IntegerField(default=1)
      color = models.CharField(max_length=30)
      screen_size = models.IntegerField(default=5)
      os = models.CharField(max_length=30, default='Samsung')

      def __unicode__(self):
          return self.brand


class MobileImage(models.Model):
     device = models.ForeignKey(Mobile, on_delete=models.CASCADE)
     image = models.ImageField(upload_to='media/images/')

     def __unicode__(self):
         return self.device
  

forms.py:

 from django import forms
from .models import Mobile, Laptop, MobileImage


class AddMobileForm(forms.ModelForm):

    class Meta:
        model = Mobile
        fields = '__all__'
  

views.py:

 def addmobile(request):
    if request.method == 'POST':
        mobileform = AddMobileForm(request.POST)
        if mobileform.is_valid():

           mobileform.save()
           return redirect('mobile')
    else:
        mobileform = AddMobileForm()

  context = {
    'mobile_form': mobileform
}
return render(request, 'device/mobile_form.html', context)
  

Комментарии:

1. У вас может быть две формы. Одна для мобильных устройств, а вторая для мобильных устройств, а затем в views.py вы можете использовать их оба

2. да, я это знаю, но это не профессиональный способ добавления вещей через формы

3. Почему не профессиональный? Вы хотите написать больше кода, чтобы делать то, что вы хотите, вместо того, чтобы использовать две формы?

4. хорошо, я понял вашу точку зрения.

5. позвольте вам сообщить ina, пока