def priority_ordering(self, request, queryset):
kw_param = request.query_params.get('topics__id__in', '')
topics = tuple(int(kw) for kw in kw_param.split(',')
if kw.isdigit())
if topics:
sql = """
SELECT count(*) FROM (
SELECT topic_id FROM reqs_requirement_topics
WHERE topic_id IN %s
AND requirement_id = reqs_requirement.id
GROUP BY topic_id
) AS subq
"""
queryset = queryset.annotate(kw_count=RawSQL(sql, (topics,)))
queryset = queryset.order_by('-kw_count', 'req_id')
return queryset
评论列表
文章目录