我正在为个人项目构建食谱/食谱应用程序(类似于cookpad或allrecipes)。 我有一个像这样的图像模型:
class Image(Model):
type = (("R", "Recipe"), ("P", "Profile"),
("E", "Embedded"), ("B", "Base"))
name = models.CharField(max_length=55)
type = models.CharField(choices=type, max_length=1, default="B")
image = VersatileImageField(
upload_to=FileNameGenerator(prefix="images"),
placeholder_image=OnDiscPlaceholderImage(
path=join(settings.MEDIA_ROOT, "images", "default.jpg")
),
null=True,
blank=True,
)
我只想使用一张表来存储所有图像。但是,对于每种不同的类型,请将其存储在不同的位置。
示例:
我知道的唯一方法是将其制成抽象模型并对其进行扩展。但这会创建许多表(ProfileImage,RecipeImage等)。
如果使用代理,则无法更改/覆盖图像字段的行为。
是否有一种方法可以扩展模型,但可以将其保存到数据库中的同一表中?