如何使用Django中的FileField在数据库中保存多个项目?

2024-03-28 13:41:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从Django文件字段上传多个文件。下面的代码上载单个文件,而不是多个文件。我还为文件数据定义了for循环,但我不知道如何将文件保存到数据库中?如果有任何帮助,我将不胜感激

视图

class NewsCreateView(CreateView):
    form_class = ArticleForm
    template_name = 'create.html'
    success_url = '/'

    def form_valid(self, form):
        form.instance.author = self.request.user
        for f in self.request.FILES.getlist('file_data'):  # file_data it's an a Attribute
            instance = form.file_data = f
            instance.save()
        return super().form_valid(form)

1条回答
网友
1楼 · 发布于 2024-03-28 13:41:48

您好文件字段可以存储一个文件(基本上它存储文件的路径),但您可以这样做:

为文件创建模型:

class Document(models.model):
    file = models.FileField()
    article = models.ForeignKey(Article, on_delete=models.CASCADE)

如果要保存文件,只需创建一个文档对象

相关问题 更多 >