问题很简单。我正在建立一个有多个用户提交食谱的食谱网站。 我想构建一个页面,列出所有用户,并根据他们的最新帖子安排用户层次结构。在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/