Peewee 加入后访问一对多属性
Peewee Access one-to-many attribute after Join
我有一个 table 叫做帖子
class Posts(BaseModel):
post_id= peewee.PrimaryKeyField()
content = CharField(null=True)
author = CharField(null=True)
和一个 table 称为“赞”
class Likes(BaseModel):
user_like_id = ForeignKeyField(User,to_field='uniqueid', db_column='user_like_id')
post_like_id = ForeignKeyField(Posts,to_field='post_id', db_column='post_like_id')
class Meta:
db_table='likes'
primary_key = CompositeKey("user_like_id","post_like_id")
其中post_like_id指的是post_id。
我正在尝试进行一次数据库调用,我可以获得 10 posts 以及那些 posts 的所有类似内容,而无需为每个 post 发出数据库调用(迭代每个 post_id 并获取具有该 ID 的点赞数)。
当我加入如下:
k = Posts.select().join(Likes,on=(Posts.post_id == Likes.post_like_id)).execute()
我无法访问单个 post 上有多少赞。
获取最喜欢的 10 个帖子,例如(需要 JOIN.LEFT_OUTER 才能包含点赞数为零的帖子,仅供参考):
query = (Posts
.select(Post, fn.COUNT(Likes.id).alias('ct'))
.join(Likes, JOIN.LEFT_OUTER)
.group_by(Post)
.order_by(fn.COUNT(Likes.id).desc())
.limit(10))
我有一个 table 叫做帖子
class Posts(BaseModel):
post_id= peewee.PrimaryKeyField()
content = CharField(null=True)
author = CharField(null=True)
和一个 table 称为“赞”
class Likes(BaseModel):
user_like_id = ForeignKeyField(User,to_field='uniqueid', db_column='user_like_id')
post_like_id = ForeignKeyField(Posts,to_field='post_id', db_column='post_like_id')
class Meta:
db_table='likes'
primary_key = CompositeKey("user_like_id","post_like_id")
其中post_like_id指的是post_id。 我正在尝试进行一次数据库调用,我可以获得 10 posts 以及那些 posts 的所有类似内容,而无需为每个 post 发出数据库调用(迭代每个 post_id 并获取具有该 ID 的点赞数)。
当我加入如下:
k = Posts.select().join(Likes,on=(Posts.post_id == Likes.post_like_id)).execute()
我无法访问单个 post 上有多少赞。
获取最喜欢的 10 个帖子,例如(需要 JOIN.LEFT_OUTER 才能包含点赞数为零的帖子,仅供参考):
query = (Posts
.select(Post, fn.COUNT(Likes.id).alias('ct'))
.join(Likes, JOIN.LEFT_OUTER)
.group_by(Post)
.order_by(fn.COUNT(Likes.id).desc())
.limit(10))