Django multiupload error: объект 'list' не имеет атрибута 'name'
Я пытаюсь использовать multiupload в форме django для загрузки нескольких изображений одновременно.
Я использую django ModelForm
, но когда я вызываю form.is_valid()
в function-base view или использую generic.FormView
, я получаю ошибку 'list' object has no attribute 'name'
. В generic.FormView
ни один из методов form_valid
и form_invalid
не вызывается. Хотя когда я использую request.POST.get(some_data)
, он работает без ошибок, но я хочу использовать generic.FormView
для некоторых валидаций. Я думаю, что ошибка возникает из-за валидации формы.
Так что же мне делать?
Вот мой код.
models.py
class Post(models.Model):
post_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True)
profile = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name="posts")
text = models.TextField(max_length=1000)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
...
class Image(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name="images")
image = models.ImageField(upload_to="images/posts/")
forms.py
class PostForm(forms.ModelForm):
images = MultiImageField(min_num=1, max_num=3)
class Meta:
model = models.Post
fields = ("text", "images")
views.py
class CreatePostView(LoginRequiredMixin, generic.FormView):
template_name = "posts/post_create.html"
form_class = forms.PostForm
def get_success_url(self):
return redirect("profile", slug=self.request.kwargs.slug)
def form_valid(self, form):
...
# some codes
...
return super(CreatePostView, self).form_valid(form)