Скачать несколько файлов FileField
Я пытаюсь использовать форму, где я хочу загрузить несколько файлов одновременно, я не знаю, в чем проблема al вроде бы работает без ошибок, но когда я проверяю, я нахожу только один файл загруженным.
это моя модель:
class Delivery(models.Model):
user = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name=_("delivery_user"))
full_name_reciever = models.CharField(_("Reciever Full Name"), max_length=50)
pickup_address = models.ForeignKey(Address, on_delete=models.CASCADE, related_name=_("pickup_address"))
destination_address = models.CharField(max_length=250)
destination_city = models.ForeignKey(City, on_delete=models.CASCADE, related_name=_("delivery_city"))
destination_post_code = models.CharField(max_length=20)
operation_date = models.DateField(
_("desired pickup date"), auto_now=False, auto_now_add=False, blank=False, null=False
)
boxes_number = models.PositiveIntegerField(_("Number of Boxes"), default=1)
boxes_wight = models.PositiveIntegerField(_("Boxes Wight"), default=1)
boxes_volume = models.PositiveIntegerField(_("Boxes Volume"), default=0)
document = models.FileField(
help_text=_("Delivery Documets"),
verbose_name=_("Delivery Certificates"),
upload_to="documents/deliveries_documents/",
)
invoice = models.BooleanField(_("check if you want an invoice"), default=False)
created_at = models.DateTimeField(_("Created at"), auto_now_add=True, editable=False)
updated_at = models.DateTimeField(_("Updated at"), auto_now=True)
delivery_key = models.CharField(max_length=200)
billing_status = models.BooleanField(default=False)
delivery_status = models.BooleanField(default=False)
class Meta:
ordering = ("-created_at",)
verbose_name = _("Delivery")
verbose_name_plural = _("Deliveries")
def __str__(self):
return str(self.created_at)
view.py:
class DeliveryCreateView(LoginRequiredMixin, UserPassesTestMixin, CreateView):
model = Delivery
form_class = UserDeliveryForm
template_name = "deliveries/customer/edit_deliveries.html"
success_url = reverse_lazy("account:dashboard")
def test_func(self):
return self.request.user.is_customer and self.request.user.is_active
def post(self, request, *args, **kwargs):
form_class = self.get_form_class()
form = self.get_form(form_class)
files = request.FILES.getlist("decument")
if form.is_valid():
for f in files:
f.save()
return self.form_valid(form)
else:
return self.form_invalid(form)
def form_valid(self, form):
form.instance.user_id = self.request.user.id
return super().form_valid(form)
и Форма:
template Я использую и он работает и я могу выбрать несколько файлов для загрузки: