所以我想有两个计划。
第一计划:
在每个帖子上制作不同的书签模型
比如:
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)?另外,我无法理解如何在创建PostProfile或Post1或Post2之后自动创建Post2。但是第二个计划擅长的是,没有必要在views.py中做一些事情
我要问的是:
发布于 2017-05-31 14:59:27
这样如何:定义一种类型的post,以便将来可以有更多类型的帖子,以及一个UserBookmark,这样用户就可以拥有他想要的书签:
class UserProfile(models.Model):
# its a good practice from django
user = OneToOneField(User, primary_key=True)
class Post(models.Model):
P_TYPE_1 = 1
P_TYPE_2 = 2
TAB_P_TYPE = {
P_TYPE_1: _("Type 1"),
P_TYPE_2: _("Type 2"),
}
post_type = models.IntegerField(
choices=[(a, b) for a, b in list(TAB_P_TYPE.items())],
default=P_TYPE_1)
text = models.TextField(max_length=110)
class UserPostBookmark(models.Model):
user = models.ForeignKey(UserProfile)
post = models.ForeignKey(Post)https://stackoverflow.com/questions/43032400
复制相似问题