我目前正在开发一个项目,其中有一种方式跟随Twitter方式,我一直无法弄清楚如何根据用户关注的人选择数据库中的“帖子”。
我正在使用默认用户功能,然后这是我的以下模型:
class Following(models.Model):
user = models.ForeignKey(User, related_name="user")
following = models.ForeignKey(User, related_name="following")
和我的帖子模型:
class Post(models.Model):
title = models.CharField(max_length=100)
text = models.TextField()
user = models.ForeignKey(User)
date_time = models.DateTimeField(auto_now=True)
最后,我认为我正在努力开展工作的片段:
def home(request):
following = Following.objects.filter(user=request.user)
posts = Post.objects.filter(/*not sure what to put here*/)
我一直在努力让这个工作起来,我无法真正看到解决方案,所以任何帮助都会很棒。
如果您可能需要查看我尚未发布的任何内容,github repository for this project is here
答案 0 :(得分:2)
我的django正在生锈,但是这里有:
posts = Post.objects.filter(user__following__user=request.user)
答案 1 :(得分:0)
from django.db import transaction
@transaction.commit_manually
def get_posts(following):
posts = []
for f in following:
posts.append(Post.objects.filter(user=f))
transaction.commit()
return posts
def home(request):
following = Following.objects.filter(user=request.user)
posts = get_posts(following)