python - 从用户关注的群组中获取帖子的最有效方法是什么?
问题描述
我正在尝试从用户关注的所有组中获取帖子对象。我能够获得用户关注的组列表和所有帖子的查询集,但我很难将对象传递给模板。
我的模型:
class Post(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete = models.PROTECT)
title = models.CharField(max_length = 120, default = '', blank = False)
body = models.TextField()
class Community(models.Model):
title = models.CharField(max_length = 50, default = '', unique = True)
followers = models.ManyToManyField(Account, related_name = "community_followers")
posts = models.ManyToManyField(Post, blank = True, related_name = "community_posts")
def __str__(self):
return self.title
class Account(AbstractBaseUser):
username = models.CharField(max_length = 30, unique = True)
email = models.EmailField(verbose_name = "email", max_length = 50, unique = True)
date_joined = models.DateTimeField(verbose_name = "date joined", auto_now_add = True)
last_login = models.DateTimeField(verbose_name = "last login", auto_now = True)
is_admin = models.BooleanField(default = False)
is_active = models.BooleanField(default = True)
is_staff = models.BooleanField(default = False)
is_superuser = models.BooleanField(default = False)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']
objects = MyAccountManager()
风景:
user = request.user
user_communities = user.community_followers.all()
queries = []
for community in user_communities:
queries.append(community.posts.all())
context['posts'] = queries
return render(request, "home/index.html", context)
模板:
{% for post in posts %}
{{ post.title }}
<hr>
{% endfor %}
没有任何帖子在模板中呈现,我似乎也无法订购它们。我认为我的实施中一定有问题。
解决方案
假设 Account 是 AUTH_USER_MODEL,您可以在一个查询中执行此操作:
Post.objects.filter(community_posts__followers=request.user)
(如果没有,请发布帐户模型。)
推荐阅读
- opengl - Opengl & glsl (vec4 * vec4) 冗余
- javascript - ES6 推特文本导入
- linux - 重命名后文件在 Ubuntu 18.04 上消失了
- dataframe - 将 pyspark 列值向左移动 1
- dependencies - https://codesandbox.io 如何实现对本地版本的依赖
- ios - iOS 上的 Cordova - AJAX 调用失败并显示 {"readyState":"0", "responseText":"", "status":0,"statusText":"error"}
- python - 如何熊猫 strftime %j?
- angular - Angular如何使用属性指令
? (index.html) - python - 如何从一个 Python 文件调用同一目录中的另一个函数
- android - 使用自定义摄像头设置 Antmedia 视频流