在我的项目中,我必须处理上传的文件,并且我想拥有每个文件版本的历史记录。并在一个视图中显示历史记录。
在我的模型中,每个文件都有一个版本、名称和路径。该文件通过一对多关系与其他类“A”相关。
我想要一种更新功能来替换以前的文件,并且我还想要访问具有文件及其相关模型实例(A 类)的所有特征的历史记录。
我不知道该怎么办。我听说过 django reversion 和 django revisions。
你对我有什么建议?
谢谢
您可以通过几种方式做到这一点:
1.您可以拥有一个手动跟踪它的文档文件模型。
class DocumentFile(CachedModel):
content_type = models.ForeignKey(ContentType, null=True, blank=True)
object_id = models.PositiveIntegerField(null=True, blank=True)
content_object = generic.GenericForeignKey(ct_field='content_type', fk_field='object_id')
file = models.FileField(upload_to= wherever )
version = models.PositiveIntegerField(default=1)
class Meta:
db_table = 'document_file'
verbose_name = 'Document File'
unique_together = ('document', 'version')
您可以有一个名为 new_version 的 post_save 信号,并更新文档上的当前修订号
2.您甚至可以使用亚马逊的s3来存储文档,并通过修订号访问它,并向其传递修订号的get参数(这是一种成本更高的方法)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)