- 我的项目有2个或更多的不同类型的模型作为后
- ,我想书签各类岗位车型
- 我需要仪表板或时间轴,显示书签的职位无论那种职位
所以我想2计划。你对我的Django模型结构有什么看法?
第一个计划:
在每一个岗位
喜欢做不同的书签模型:
class UserProfile(models.Model):
user = AutoOneToOneField(User, primary_key=True)#its_from_django-annoying
class Post1(models.Model):
text1 = models.TextField(max_length=110)
class Post2(models.Model):
text2 = models.TextField(max_length=120)
class bookmarkForPost1(models.Model):
who_user = models.ForeignKey(UserProfile)
what_bookmarked = models.ForeignKey(Post1)
class bookmarkForPost2(models.Model):
who_user = models.ForeignKey(UserProfile)
what_bookmarked = models.ForeignKey(Post2)
,并做一些仪表盘在views.py
第二个计划:
制作PostProfile模型,书签,
像:
class UserProfile(models.Model):
user = AutoOneToOneField(User, primary_key=True)
class PostProfile(models.Model):
description = models.TextField(max_length=100)
#Do something to connect Post1 or Post2
class Post1(models.Model):
text1 = models.TextField(max_length=110)
#Do something to connect PostProfile
class Post2(models.Model):
text2 = models.TextField(max_length=120)
#Do something to connect PostProfile
class bookmarkForPosts(models.Model):
who_user = models.ForeignKey(UserProfile)
what_bookmarked = models.ForeignKey(PostProfile)
第二个计划是似乎是简单和有利于我的眼睛。
第二个计划,我不知道我把OneToOneField放在哪里。在PostProfile或Post1(+ Post2)?另外,我无法理解如何在创建Post1或Post2后自动创建PostProfile。 但是第二个计划是擅长,有没有需要做views.py
东西我问的是:
- 是否有第一个计划和第二个计划之间存在严重的性能差异?如果是,有什么更好?
- 你愿意给我一些建议来完成第二个计划吗?
你可能考虑将你的问题转移到代码审查,如果它是收集有关想法和样式的评论。 – gonczor