Django - 应该将ImageField内置到同一个应用程序中,还是在单独的应用程序中实现?

时间:2015-11-24 14:26:21

标签: django django-models imagefield

例如,有两个应用carshouses,它们目前对models.ManyToManyField的模型都有models.ImageField(upload_to='img/[APP_NAME]

不是复制和粘贴ImageField代码片段,最好将图片上传拆分为单独的应用程序并导入吗?它应该是什么样的?

1 个答案:

答案 0 :(得分:1)

你的问题没有明确的答案。这在很大程度上取决于你想要达到的目标。

制作一个单独的应用程序,只知道图像,您将遇到以下问题:

  • 您希望upload_tocars使用不同的houses。您需要动态设置它。 Example.
  • 您的图片模型(ImageField的图像模型)将通过cars属性了解housesrelated_name。我发现它没有任何好处。要摆脱反向引用,您可以指定ManyToMany(..., related_name="+")。注意:"+"表示没有给出相关名称,不应自动生成。但是删除它的合理性也值得怀疑。
  • 还有一个应用程序,确实......好吧,没什么。每个应用程序还有一个依赖项。

在您的位置,我只会留下两个模型图片,一个在cars,另一个在houses。这是在考虑您必须编写的样板代码的数量以及您将为自己创造的问题数量。