Загрузка нескольких файлов Django с использованием нескольких атрибутов поля ввода - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь создать медиапост с загрузкой нескольких файлов. Это мой код для views.py.

@login_required()
def CreateMediaPost(request):
    if request.method == 'POST':
        postForm = MediaPostForm(request.POST)
        files = request.FILES.getlist('media')
        print(files)
        if postForm.is_valid():
            post_form = postForm.save(commit=False)
            post_form.postedBy = request.user
            post_form.save()
            for file in files:
                upload = FileUpload()
                upload.mediaPost = post_form
                upload.media = file
                upload.save()
                print(upload)
            messages.success(request, "Post submitted")
            return redirect("create-media-post")
        else:
            print(postForm.errors)
    else:
        postForm = MediaPostForm()
        upload = FileUploadForm()
    return render(request, 'forms/mediapost.html',{'postForm': postForm,'fileUpload':upload})

Models.py

class MediaPost(models.Model):
    title = models.CharField(max_length=50)
    content = models.CharField(max_length=150)
    postedBy = models.ForeignKey(User, on_delete=models.CASCADE)
    category = models.ForeignKey(CategoryPost, on_delete=models.CASCADE)
    type = models.ForeignKey(TypeMediaPost, on_delete=models.CASCADE)
    tags = TaggableManager()

def get_filename(object, filename):
    postId = object.MediaPost.id
    return "postMedia/%s" % postId

class FileUpload(models.Model):
    mediaPost = models.ForeignKey(MediaPost, on_delete=models.CASCADE)
    media = models.FileField(upload_to=get_filename, verbose_name='Media')

при получении ошибки атрибута для модели загрузки файла при отправке формы

Пожалуйста, помогите мне устранить эту ошибку или предложите лучший способ загрузки нескольких файлов. Кроме метода modelformset_factory.

...