Проблема загрузки нескольких файлов в Django
У меня возникает ошибка, когда я пытаюсь загрузить несколько файлов в форму.
вот моя модель:
class Delivery(models.Model):
user = models.ForeignKey(
Client, on_delete=models.CASCADE, verbose_name=_("Client"), related_name=_("delivery_user")
)
pickup_address = models.ForeignKey(Address, on_delete=models.CASCADE, related_name=_("pickup_address"))
destination_address = models.ForeignKey(Address, on_delete=models.CASCADE, related_name=_("destination_address"))
operation_date = models.DateField(
_("desired pickup date"), auto_now=False, auto_now_add=False, blank=False, null=False
)
operation_time = models.TimeField(
_("desired pickup date"), auto_now=False, auto_now_add=False, blank=False, null=False
)
document = models.FileField(
help_text=_("Delivery Documets"),
verbose_name=_("Delivery Certificates"),
upload_to="documents/deliveries_documents/",
blank=True,
null=True,
)
class Meta:
ordering = ("-created_at",)
verbose_name = _("Delivery")
verbose_name_plural = _("Deliveries")
def get_absolute_url(self):
return reverse("delivery:unconf-delivery-details", args=[self.id])
Я использовал пример с сайта Django для обработки множественной загрузки файлов, и вот форма и представление для этой модели:
View.py
class DeliveryCreateView(LoginRequiredMixin, UserPassesTestMixin, CreateView, FormView):
model = Delivery
form_class = UserDeliveryForm
template_name = "deliveries/customer/edit_deliveries.html"
def get_success_url(self):
return reverse("delivery:operation-form", kwargs={"pk": self.object.pk})
def test_func(self):
return 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 file in files:
self.Delivery.objects.create(document=file)
return self.form_valid(form)
else:
return self.form_invalid(form)
Form.py
class UserDeliveryForm(forms.ModelForm):
class Meta:
model = Delivery
fields = [
"user",
"pickup_address",
"destination_address",
"operation_date",
"operation_time",
"document",
]
widgets = {
"operation_date": forms.DateInput(
format=("%d %B %Y"),
attrs={"class": "form-control mb-2 delivery-form", "placeholder": "JJ-MM-AAAA"},
),
"operation_time": forms.TimeInput(
attrs={"type": "time", "class": "form-control mb-2 delivery-form"},
),
"document": forms.ClearableFileInput(attrs={"multiple": True}),
"user": forms.Select(),
"pickup_address": forms.Select(),
"destination_address": forms.Select(),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["user"].widget.attrs.update({"class": "form-control mb-2 delivery-form", "Placeholder": "Client "})
self.fields["pickup_address"].widget.attrs.update(
{"class": "form-control mb-2 dropdown delivery-form", "Placeholder": "Addresse de ramassage "}
)
self.fields["destination_address"].widget.attrs.update(
{"class": "form-control mb-2 delivery-form", "Placeholder": "Addresse de destination"}
)
self.fields["document"].widget.attrs.update(
{"class": "form-control mb-2 delivery-form", "Placeholder": "document"}
)
когда я тестирую форму, я получаю эту ошибку:
AttributeError at /delivery/new_delivery
У объекта 'DeliveryCreateView' нет атрибута 'object'.
Я не знаю, в чем именно проблема, файл, который я пытался загрузить - это несколько картинок *.jpg.