我有模特:
class MyModel(models.Model):
user = models.ForeignKey(user)
data = models.IntegerField()
created = models.DateTimeField(default=datetime.now)
[...]
如何制作一个过滤器,以便每个用户有10个条目的结果,然后按“用户”排序?
示例:
显示页面“users entries”,其中是每个用户的两个最新条目。
答案 0 :(得分:1)
我是django newbe,但最近我遇到了类似的问题。 也许它会为你做到。
我的用户基于django用户模型和带有字段所有者的电影。我希望显示每个用户的最后2部电影,按用户分组并按电影发布日期排序。
我做了什么,是:
创建并添加方法到用户模型(它返回2个用户电影的列表):
from django.contrib import auth
def get_users_last_movies(self):
movies = Movies.objects.filter(state=3,
pubdate__lte=datetime.now(),
owner=self).order_by('-pubdate')[0:2]
return movies
auth.models.User.add_to_class('get_users_last_movies', get_users_last_movies)
在视图文件中选择您感兴趣的所有用户并将他们的电影附加到他们,在创建的用户列表上使用排序方法
dusers = User.objects.filter(is_active=True)
users = []
for duser in dusers:
duser.movies = duser.get_users_last_movies()
users.append(duser)
users.sort(key=lambda x: x.movies[0].pubdate, reverse=True)
data['dusers'] = users
希望此代码能让您顺利进行