所以我将文件上传到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)
我想知道如何上传文件并根据上传的文件填充Report_Info模型?
答案 0 :(得分:0)
最简单的是覆盖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()