这不是程序错误修复问题。看起来很傻,因为我在设计网站方面没有太多经验。我想在开始编写代码之前确保我的设计模式是正确的。
我想设计一个像google+或facebook这样的社交网络(只完成分享内容等基本功能),像google+一样,用户可以分享不同类型的内容,如文字、照片、链接和视频。如下图:
我很困惑我是否需要为每种类型的共享内容设计不同的模型?像下面的代码:
class TextPost(models.Models):
text=models.CharField(max_length=140)
createDate=models.DateTimeField(auto_now_add=True)
author=models.OneToOneField(User)
class GalleryPost(models.Model):
galleryTitle=models.CharField(max_length=140)
createDate=models.DateTimeField(auto_now_add=True)
author=models.OneToOneField(User)
class Images(models.Models):
image = models.ImageField()
galleryPost=models.ForeignKey(GalleryPost)
class LinkPost(models.Models):
link=...
createDate=...
class VideoPost(models.Models):
video=...
或者将所有类型归为一类:
class Post(models.Model):
text=models.CharField(max_length=140)
createDate=models.DateTimeField(auto_now_add=True)
author=models.OneToOneField(User)
galleryTitle=models.CharField(max_length=140)
link=...
video=...
如果我选择第一种方式,那么在一个页面中按创建日期列出各种帖子是否容易?或者有没有其他更好的方法?