Когда я сохраняю данные и загружаю несколько файлов, ничего не происходит

У меня есть сомнение, оно заключается в том, что просматривая документацию по загрузке нескольких файлов, я вижу, что они объясняют это легко, только это не работает для меня. Особенно я не знаю, что делать здесь, на мой взгляд:

for f in files: 

Я поместил поля моей модели и в аргументы функции, но получаю много ошибок.

Поэтому я не очень хорошо понимаю эту строку кода, я не знаю, может поэтому моя форма не работает. И дело в том, что моя форма принимает данные, а также имеет две кнопки для загрузки нескольких изображенийМожете ли вы помочь мне решить эту проблему? Спасибо

models.py

class Carro(models.Model):
    no_politica=models.CharField(max_length=255, null=True)
    cliente= models.ForeignKey(Clientes, on_delete=models.SET_NULL, null=True)
    fotosCarro=models.ImageField(null=True, upload_to="images/")
    garantia=models.ImageField(null=True, upload_to="images/")
    fecha_registros = models.DateTimeField(default=datetime.now, null=True)

    def __str__(self):
        return f'{self.no_politica}{self.cliente}' \
               f'{self.fecha_registros}{self.fotosCarro}{self.garantia}'

carros-form-add.html

                                          <div class="row mb-3">
                                                <div class="col-md-4">
                                                    <div class="mb-3">
                                                        <label>Cliente</label>
                                                        {{ form.no_politica}}
                                                    </div>
                                                </div>
                                            </div>
                                          <div class="row mb-3">
                                                <div class="col-md-4">
                                                    <div class="mb-3">
                                                        <label>Cliente</label>
                                                        {{ form.cliente }}
                                                    </div>
                                                </div>
                                            </div>

                                            </div>

                                            <!-- GALLERY CONTENT -->

                                            <div class="tab-pane" id="pictures" role="tabpanel">
                                                <div>
                                                        {{ form.fotosCarro }}
                                                    <label for="file-input" class="btn btn-outline-success">Upload images</label>
                                                        <p id="num-of-files">No files chosen</p>
                                                        <div id="images"></div>

                                                </div>

                                            </div>

                                            <!-- Warranty CONTENT -->
                                            <div class="tab-pane" id="warranty" role="tabpanel">
                                                <div>
                                                        {{ form.garantia }}
                                                    <label for="file-inputz" class="btn btn-outline-success">Upload images</label>
                                                        <p id="num-of-filez">No files chosen</p>
                                                        <div id="imagez"></div>

                                                </div>

                                                <br>
                                                <button class="btn btn-primary mb-3" type="submit" value="Post">Save</button>
                                            </div>

views.py

class create_carros(FormView):

    form_class=CarroForm
    template_name='carros/carros-form-add.html'
    success_url=reverse_lazy('carros:list_cars')

    def post(self, request, *args, **kwargs):
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        files = request.FILES.getlist('fotosCarro')
        garantia = request.FILES.getlist('garantia')
        if form.is_valid():
            # for f in files:
                # photo=Carro.objects.create()
            return self.form_valid(form)
        else:
            return self.form_invalid(form)

forms.py


            'cliente': forms.Select(
                attrs={
                    'class': 'form-select'
                }
            ),
            'fotosCarro':forms.FileInput(
                attrs={
                    'class': 'type-file',
                    'multiple': True,
                    'id': 'file-input',
                    'onchange':'preview()',
                }
            ),
            'garantia':forms.FileInput(
                attrs={
                    'class': 'type-file',
                    'multiple': True,
                    'id': 'file-inputz',
                    'onchange': 'previewz()',

                }
            ),

Для сохранения изображений через форму необходимо указать параметр enctype="multipart/form-data" следующим образом:

<form action="" method="POST" enctype="multipart/form-data">

{{ your_form_contents }}

</form>

https://docs.djangoproject.com/en/4.0/topics/http/file-uploads/

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