如何从 Django 中的不同模型生成提要?

比贝克·班达里

所以,我有两个模型,称为公寓和工作。分别显示两个模型的内容很容易,但我无法弄清楚如何根据日期显示两个模型的混合提要。

jobs = Job.objects.all().order_by('-posted_on')
apartments = Apartment.objects.all().order_by('-date')

职位发布日期由“posted_by”表示,公寓发布日期由“date”表示。如何将这两者结合起来并根据发布日期对它们进行排序?我尝试以更简单的方式组合这两种模型,例如:

new_feed = list(jobs) + list(apartments)

这只是创建了这两个模型的列表,但它们不是按日期排列的。

勒迈泽尔

我建议两种方法来实现这一目标。

使用Django 1.11 中的新功能。使用SQL 的 UNION运算符来组合两个或多个 QuerySets 的结果union()

您需要确保订购的字段具有唯一的名称 Likedate字段 for joband alsoapartment

jobs = Job.objects.all().order_by('-posted_on')
apartments = Apartment.objects.all().order_by('-date')

new_feed = jobs.union(apartments).order_by('-date')

请注意,使用此选项,您需要具有相同的字段名称才能对其进行排序。


With chain(),用于将连续序列视为单个序列并使用sorted()withlambda对它们进行排序

from itertools import chain

# remove the order_by() in each queryset, use it once with sorted
jobs = Job.objects.all()
apartments = Apartment.objects.all()
result_list = sorted(chain(job, apartments),
                key=lambda instance: instance.date)

使用此选项,您实际上不需要重命名或更改您的字段名称之一,只需添加一个属性方法,让我们选择作业模型

class Job(models.Model):
    ''' fields '''
    posted_on = models.DateField(......)

    @property
    def date(self):
         return self.posted_on

所以现在,你的两个模型都有属性date,你可以使用chain()

result_list = sorted(chain(job, apartments),
                     key=lambda instance: instance.date)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取在Django模型中自动生成的主键ID

来自分类Dev

如何使用django模型中的其他字段生成主键

来自分类Dev

如何基于不同模型中其他字段的值设置Django模型字段的值

来自分类Dev

如何在Django模型中以3种不同的价格添加3种不同的许可证

来自分类Dev

如何从Django删除模型?

来自分类Dev

如何修改Django模型?

来自分类Dev

如何计算模型的Django?

来自分类Dev

如何编辑Django模型

来自分类Dev

如何腌制Django模型

来自分类Dev

如何从Django删除模型?

来自分类Dev

django-mptt-如何在同一棵树中设置不同的模型

来自分类Dev

如何从Django中的一个字段引用不同的模型类型?

来自分类Dev

如何在Django中添加同一模型的两个不同的整数字段

来自分类Dev

在Django中查询相同模型时如何返回两个不同的错误消息

来自分类Dev

如何从Django中的一个字段引用不同的模型类型?

来自分类Dev

用户如何在Django中查询模型

来自分类Dev

如何在Django中创建投票模型?

来自分类常见问题

如何在Django模型字段中求和

来自分类Dev

如何避免Django模型中的日期重叠?

来自分类Dev

如何在Django中动态更新模型?

来自分类Dev

如何在Django中缓存模型方法?

来自分类Dev

如何在Django模型中定义关系?

来自分类Dev

如何在Django中创建抽象模型?

来自分类Dev

如何在Django中对模型进行“选择”?

来自分类Dev

如何在Django模型字段中求和

来自分类Dev

如何避免在Django模型字段中重复?

来自分类Dev

如何从Django中的模型对象获取数据

来自分类Dev

如何检查Django模型中的字段?

来自分类Dev

如何在Django中创建ListField模型?

Related 相关文章

热门标签

归档