Django文件上传在文件上运行函数并存储在数据库中?

2024-04-20 11:45:47 发布

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

所以我把文件上传到我在django的数据库里。为此,我使用django-database-files。但是我想做的是对上传的文件运行一个函数,这样我就不必每次都读取文件,这样我就可以查询一些信息。我想要一个只包含存储文件的表(这样就不必经常查询)和另一个通过读取和解析文件填充的表。以下是如何设置模型的基本概述:

class Report(models.Model):
    #Machine Run File
    report = models.FileField(upload_to='not required')

class Report_Info(models.Model):
    start_time = models.DateTimeField()
    ... I have more fields that are calculated from the file
    file = ForeignKey(Report)

我想知道如何上传文件,并根据上传的文件填充报表信息模型?你知道吗


Tags: 文件django函数run模型report信息数据库
1条回答
网友
1楼 · 发布于 2024-04-20 11:45:47

最简单的方法是重写Report.save

class Report(models.Model):
    report = ...

    def save(self, **kwargs):
        super(Report, self).save(**kwargs)
        try:
            # 'Report_Info' is just the ugliest name possible
            report_info = ReportInfo.objects.get(file=self)
        except ReportInfo.DoesNotExist:
            report_info = ReportInfo(file=self)
        # process self.report and fill report_info fields
        report_info.save()

相关问题 更多 >