我正在尝试为我的应用建模,但我遇到了这个问题:
我有一张幻灯片,可以是图片,文字或视频。 此外,图像和视频可以在同一用户的许多不同幻灯片和演示文稿中。
我还想存储幻灯片所属的演示文稿和插入日期(幻灯片必须有订单)。
class Slide(models.Model):
user = models.ForeignKey(User)
presentation = models.ForeignKey(Presentation)
insert_date = models.DateTimeField(auto_now_add=True)
-
class Image(models.Model):
def get_image_path(instance, filename):
return os.path.join('users/images', str(instance.id), filename)
user = models.ForeignKey(User)
slide = models.ManyToManyField(Slide)
image = models.ImageField(upload_to=get_image_path)
insert_date = models.DateTimeField(, auto_now_add=True)
-
class SlideText(models.Model):
slide = models.OneToOneField(Slide)
text = models.TextField()
[视频模型将类似于图像]
此模型的问题是幻灯片可以为空,幻灯片可以同时包含图像和文本(以及视频),但它不应该。
我可以想象这是一个常见的问题:某些项目有一些相关的信息依赖于“项目的类型”(即图像的幻灯片,文本的幻灯片......),那么什么是常见的解决方案?
任何帮助真的很感激!谢谢!