Как показать форму и 2 входа для загрузки нескольких изображений в шаблоне и в представлении?

Я хочу сделать вход, который загружает несколько изображений. Я просмотрел несколько руководств и мой опыт не позволяет мне понять многие вещи. Я разместил представление, но в шаблоне, где должен появиться ввод, появляется следующее:

<QuerySet []>

Очевидно, что этого не должно быть, должен появиться input, который загружает изображения при нажатии. Можете посмотреть мой код? Можете подсказать?

html

views.py

def create_carros(request):
   if request.method == "POST":
       form = CarroForm(request.POST)
       images = request.FILES.getlist('fotosCarro')
       garantias = request.FILES.getlist('garantia')
       for image in images:
           Carro.objects.create(fotosCarro=image)
       for garantia in garantias:
           Carro.objects.create(garantias=garantia)

   form = CarroForm(request.POST)
   images = FotosCarro.objects.all()
   garantias = Garantia.objects.all()
   return render(request, 'carros/carros-form-add.html', {'images': images,'garantias': garantias,'form':form})


models.py

class Carro(models.Model):
   compañia_seguros=models.CharField(max_length=255, null=True)
   cliente= models.ForeignKey(Clientes, on_delete=models.SET_NULL, null=True)
   fecha_registros = models.DateTimeField(default=datetime.now, null=True)

   def __str__(self):
       return f'{self.compañia_seguros}{self.cliente}' \
              f'{self.fecha_registros}'



class FotosCarro(models.Model):
   carro = models.ForeignKey(Clientes, on_delete=models.SET_NULL, null=True)
   fotosCarro=models.ImageField(null=True, upload_to="images/")

class Garantia(models.Model):
   carro = models.ForeignKey(Clientes, on_delete=models.SET_NULL, null=True)
   garantia=models.ImageField(null=True, upload_to="images/")

forms.py

class CarroForm(forms.ModelForm):
    class Meta:
        model=Carro
        fields = ['compañia_seguros','cliente']
               
        exclude = ['fecha_registros']
widgets = {
            
            'compañia_seguros': forms.TextInput(
                attrs={

                    'class': 'form-control'
                }
            ),
            'cliente': forms.Select(
                attrs={
                    'class': 'form-select'
                }
            ),
            
            'fecha_registros': forms.DateInput(
                attrs={
                    'class': 'form-control',
                }
            ),

        }



class FotosForm(forms.ModelForm):
    model = FotosCarro
    widgets = {

        'fotosCarro':forms.FileInput(
            attrs={
                'class': 'type-file',
                'multiple': True,
                'id': 'file-input',
                'onchange':'preview()',
            }
        ),

    }


class GarantiaForm(forms.ModelForm):
    model = Garantia
    widgets = {
        'garantia':forms.FileInput(
                attrs={
                    'class': 'type-file',
                    'multiple': True,
                    'id': 'file-inputz',
                    'onchange': 'previewz()',
         
                }
            ),
    }

Теперь, когда вы выделили FotosCarro и Garantia как собственные модели, я предполагаю, что Carro может иметь более одного из них. Это означает, что ваша форма должна быть немного сложнее. Чтобы включить "подформы" для связанных моделей в родительскую форму, вы можете использовать inline formsets. Это позволит вам загружать изображения для нескольких FotosCarro и Grantia для одной Carro.

Вернуться на верх