在Django中为未知模型创建ForiegnKey

2024-09-22 14:19:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我将举例说明

我有

class Stone(models.Model):
    # name, color, whatever

class Member(models.Model):
    # whatever

class Image(models.Model):
    stone = models.ForiegnKey(Stone, on_delete=...) # this should have the model that needs images
    image = models.ImageField()

我使用图像模型的foriegnKey生成多个图像,但这迫使我为每个模型创建一个图像模型,在我的示例中,Stone可以有多个图像,对吗?我希望成员和所有需要图像的模型使用同一个类,我只希望创建一个图像表

我已经搜索了一段时间,但我不知道搜索文本应该是什么,我读过关于ContentType的文章,但我不知道它是做什么的,我甚至不知道它是否是我想要的

编辑1:我实际上想过创建2个可为null的ForiegnKeys,但这似乎是一个解决方案,而不是一个解决方案


Tags: name模型图像imagemodelonmodels解决方案
1条回答
网友
1楼 · 发布于 2024-09-22 14:19:38

我想ContentType是我一直在寻找的,引自Dischs开发者David Cramerhere

Generic relations are fine. They are not slow, just more difficult to manage in your code base.

我想这就是答案,我想指出的是,正如@Adithya所说,django-polymorphic也能有所帮助,因为我已经尝试过这个方法,而且它似乎是easiet解决方案,将OOP概念多态性添加到django模型系统中

相关问题 更多 >