【发布时间】:2015-07-30 05:25:39
【问题描述】:
我有两个型号都有FileField,就像这样:
class OriginalFile(models.Model):
docfile = models.FileField(upload_to=file_path)
class RevisedFile(models.Model):
newfile = models.FileField(upload_to=revisedfile_path)
originalfile = models.ForeignKey(OriginalFile, on_delete=models.PROTECT)
如您所见,第一次上传文件时,它会上传到OriginalFile 模型中的file_path。但是,如果用户上传同一文件的修订版,它会保存到 RevisedFile 模型中的 revisedfile_path。
普通用户无权自行修改文件(这就是我当时不替换原始文件的原因)。如果经理接受修改后的文件,则需要发生以下事情:
- 将
OriginalFile的docfile替换为RevisedFile的newfile - 删除
RevisedFile的相关实例及其保存在目录中的newfile。
docfile 和newfile 的名称可以假定为相同。我不知道如何解决这个问题。任何形式的帮助都将不胜感激。谢谢。
【问题讨论】:
-
听起来用户可以访问您的文件系统并且您上传到不同的目录以限制非管理员用户的访问。是这样吗?
-
是的,普通用户使用表单上传文件。
标签: django django-models filefield