Django - 多图像上传

时间:2011-05-05 08:27:23

标签: django django-admin

我需要上传并附加任意数量的图像到我的模型。该网站是针对房地产经纪人的,因此他们希望将图像附加到其网站的属性页面。我只能想到以下解决方案:

  1. 为图像创建另一个模型,并使用(edit :)外键字段关联它们。我不想这样做有很多原因,主要是因为它混淆了添加新属性的过程(他们必须使用两个不同的管理屏幕),并且因为可能有数千个属性,所以在ManyToMany下降将是一个真正的痛苦。

  2. 创建一个相当复杂的自定义窗口小部件,用于启动带有图像模型的弹出窗口。这里的问题是我需要确保图像一旦保存就链接到属性,所以我需要弄清楚这样做的方法(因为当你添加一个新属性时,没有什么可以创建一个链接我知道我可以用信号做到这一点,但我不确定如何用多个图像做这个,因为可能有多个值要关联。

  3. 有没有人对我如何做到这一点有任何建议?从根本上说,我只需要一种上传动态数量的图像的方式,并以某种方式将它们与我的模型相关联。

    谢谢!

1 个答案:

答案 0 :(得分:2)

由于添加了inline model admin个对象,它根本不会使管理界面复杂化。您将拥有属性管理页面,其中包含下面的图像列表,内联使您能够将新图像与每个属性相关联。

这几乎是外键场景的典型例子。我会质疑多对多关系的使用,因为一张属性的照片不应该与其他属性相关联(虽然我认为在公寓楼的情况下......) 如果您希望数据库以任何方式设计得很好,您需要存储属性和图像之间的关联,并通过外键关系完成。否则你将不得不将许多文件名整合到一个字段中,这个字段非常混乱,而且几乎不可理解。

或者,如果管理员没有给你足够的灵活性,那么构建一个允许关联任意数量图像的ModelForm就不会太难了。