我最近在Django应用程序的Bird模型中添加了新的ImageField。
# models.py
class Bird(models.Model):
name = models.CharField(max_length=50)
project = models.ForeignKey(
Project,
related_name='birds',
on_delete=models.CASCADE
)
def bird_images_path(instance, filename):
return 'bird_images/' + instance.project.directory + '/' + filename
image = models.ImageField(upload_to=bird_images_path, null=True, blank=True)
在django管理员中,我已向db中的Bird表添加了新记录,并上传了图像,并且按预期将它们记录在我的媒体路径(\ media \ bird_images \ birds)中。一切正常。
尽管如此,一段时间之后,我以前文件的一些奇怪命名的副本出现在同一位置。例如,dove_ee9rsOT.jpg和dove_zRCwQrj.jpg现在保存在原始上载的dove.jpg旁边。所有三个图像都是相同的,并且数据库记录包含新图像之一。
但是,我不记得添加任何此类图像,并且没有其他人可以访问我的应用程序。是否对此行为有任何解释或如何防止它发生?