如果我有一个带有FileField的Django模型,例如
class Probe(models.Model):
name = models.CharField(max_length=200, unique=True)
nanoz_file = models.FileField(upload_to='nanoz_file', blank=True)
如果用户在管理界面上传一个新文件,有没有办法防止上传的文件被覆盖?在
另外,如果我确实保留了旧文件,是否有方法可以将以前的文件关联回模型实例?在
也就是说,我希望能够列出一个给定模型实例上传到nanoz_文件字段的所有文件。在
您可以使用以下结构:
然后在视图中可以使用类似于:
^{pr2}$希望这有帮助!在
正如jpic所说,你可以尝试django reversion,或者
对于第二种方法,实际上对于处理w/all用户上传,最好按照您设计的模式命名文件,而不是使用原始名称(您也可以存储原始名称以供以后使用)。对于您的情况,由于“名称”字段是唯一的,因此如果该字段很少更改,则该字段适合作为生成上载文件的文件名的基础:
然后在您的视图中,您可以通过
^{pr2}$Django从不覆盖上载的文件。如果你上传'巴布亚新几内亚“两次,第二次是‘foo逖1.png’——我刚测试过这个,但不要相信我的话:也试试看!在
您所要做的(或者让django reversion来做)就是跟踪以前的文件名。在
相关问题 更多 >
编程相关推荐