【发布时间】:2011-02-10 22:14:14
【问题描述】:
我有一个包含 FileField 的模型。 我希望这个 FileField 有一个唯一的路径。
一开始,虽然关于使用条目的ID,但是Django将文件移动到它的upload_to路径在保存条目之前,所以ID是空的。
此外,我不能使用诸如标题或模型的任何其他元素(创建日期除外)之类的东西,因为它们可以由用户更改。而且我不希望每次用户更改其条目的标题时都复制/删除文件(如果我将标题用作路径的一部分)。
从这里开始我的研究,我发现了这些:
生成唯一键并将其与数据库进行比较。虽然密钥存在,但我们会生成一个新密钥 (Django, unique field generation):问题是在拥有唯一密钥之前可能对数据库造成的潜在影响
从创建日期获取时间戳。这里的问题是,如果两个人同时添加一个文件,就会产生冲突
我希望这个唯一 ID 尽可能小,最大长度为 7 会很棒。完美的解决方案是拥有条目的 ID。您是否知道这样做的解决方法(在将文件移动到其 upload_to 文件夹之前调用 save() upload_to 文件夹?)或者如果不知道,哪种实现将是最好的,基于一个是我的解决方案还是您认为更好的解决方案?
【问题讨论】: