python - Django : How to query users based on latest post

标签 python django orm

问题很简单。我正在建立一个有多个用户提交食谱的食谱网站。 我想构建一个页面,列出所有用户,并根据他们的最新帖子安排用户层次结构。在views.py中查询用户并传递到上下文的最佳方法是什么?

代码片段是这样的;

模型.py

class UserRecipe(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=200)
    created_date = models.DateTimeField(default=timezone.now)

您可以看到使用foreignkey链接到用户的UserRecipe模型。因此,我在views.py中构建了一个 View 来列出用户并根据他们上次UserRecipe创建的日期对他们进行排名。

那么为了查询用户并根据他们的 UserRecipe 创建日期排列他们,最好的方法是什么?

最佳答案

您可以使用以下查询

users = User.objects.order_by("-userrecipe__created_date") 

它将按正确的顺序,但是会有重复,即他们创建的每个食谱都会有一个用户条目

如果您使用 postgres 作为数据库,您可以通过在查询末尾添加 .distinct() 来避免这种情况,否则您可以像这样删除重复项:

already_seen = []
for u in users:
    if u not in already_seen:
        already_seen.append(u)

users = already_seen

关于python - Django : How to query users based on latest post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47502264/

相关文章:

entity-framework - 手动 DAL & BLL 与 ORM

python - 在 Python 中定义梯度和 hessian 函数

python - python 是否有 Matlab 的 `ans` 变量捕获未存储在任何变量中的返回值?

python - 如何在 Python/Django 中获取图片标题

scala - Derby 和 Circumflex ORM 的 SQL 语法错误

java - Log4j2/JPA/Hibernate 日志记录不工作

Python 基础继承

python - Google+ 登录 Python 服务器 - "invalid_client - The OAuth client was not found"

python - 序列化器: Customising nested relationships

python - "global name ' _ ' is not defined"在提高 ValidationError 期间