我正在尝试为我的应用程序建模,但遇到了这个问题:
我有一个幻灯片,可以是图像、文本或视频。此外,图像和视频可以在同一用户的许多不同幻灯片和演示文稿中。
我还想存储幻灯片所属的演示文稿和插入日期(幻灯片必须有顺序)。
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()
[视频模型将类似于图像]
这个模型的问题是幻灯片可以是空的,并且幻灯片可以包含图像和文本(以及视频),它不应该。
我可以想象这将是一个常见问题:某些项目有一些与“项目类型”相关的信息(即图像幻灯片、文本幻灯片......),那么常见的解决方案是什么?
任何帮助真的很感激!谢谢!