Python 按泛型关系排序?
我有两个模型发布和评论。这两个都可以通过一个额外的评级应用程序获得一分。该点与任何必要的对象和值具有通用关系 现在,我使用以下方法创建了一个Post和Comment对象列表:Python 按泛型关系排序?,python,django,django-1.7,Python,Django,Django 1.7,我有两个模型发布和评论。这两个都可以通过一个额外的评级应用程序获得一分。该点与任何必要的对象和值具有通用关系 现在,我使用以下方法创建了一个Post和Comment对象列表: result_list = sorted(chain(post_list, comment_list),key=attrgetter('pub_date',)) 最大的问题是:我如何按指定的点排序,而不是按发布日期排序 我正在寻找一个解决方案,不修改帖子,评论或点,因为点是在一个额外的应用程序,我希望他们所有的工作相互独
result_list = sorted(chain(post_list, comment_list),key=attrgetter('pub_date',))
最大的问题是:我如何按指定的点排序,而不是按发布日期排序
我正在寻找一个解决方案,不修改帖子,评论或点,因为点是在一个额外的应用程序,我希望他们所有的工作相互独立。不过,还有第三个应用程序将它们结合在一起,所以我可以有一个新的视图来实现这一点。但我不知道怎么做 以下几点应该可以做到:
result_list = sorted(
chain(post_list, comment_list),
key=lambda x: sum(
[
point.value for point in Point.objects.filter(
point_for_id=x.id,
point_for_class=ContentType.objects.get_for_model(x)
],
0
)
)
但是,我可以建议您对points应用程序进行升级和修改,a将使这一过程更加简单。其他方面对此有着普遍的联系。没有一个解决方案符合我们不修改classIs的要求有没有办法从应用程序外部修改模型?类似于强制加入mixin或像使用模板一样覆盖它?有没有办法保持单个应用程序的独立性?请参阅Field中的contribute_to_class。我不确定我是否正确理解相关的查询名称。我想我必须将其添加到评论和帖子模型中,以获得正确的反向关系?但这会将他们的应用程序绑定到point应用程序,使其无法独立运行,对吗?相关的查询名称通常适用,而不仅仅是你的应用程序。它将为任何被给予分数的东西提供计算分数的方法。