1

いくつかの複雑なクエリを使用してランク、比率、およびその他の複雑な出力を返すdjangoアプリケーションに取り組んでいます。私はウェブからいくつかの例をたどりました。これは、それを配置して返されたクエリセットからデータを取得する最良の方法を見つけるのに役立ちました

それでも、特定のレコードにカスタムの詳細を挿入する方法を見つけたいと思います。たとえば、私の場合、返されたレコード セットに get_absolute_url() 値を関連付けようとしています。

以下は、最も使用されている興味を返す例です。このクエリは常に限られたクエリセットを返します。返された辞書をモデルの get_absolute_url() 値で拡張する方法はありますか?

def most_used_interests(self, limit_by=10):
    cursor = connection.cursor()
    cursor.execute("""
            SELECT
                i.name,
                i.name_ar,
                i.name_en,
                ij.interest_id,
                SUM (ij.C) item_count
            FROM
                (
                    SELECT
                        C .interest_id,
                        COUNT (b. ID) C
                    FROM
                        bargain_bargain b,
                        bargain_bargain_bargain_target C
                    WHERE
                        b. ID = C .bargain_id
                    GROUP BY
                        C .interest_id
                    UNION
                        SELECT
                            x.interest_id,
                            COUNT (P . ID) C
                        FROM
                            promotion_promotion P,
                            promotion_promotion_promo_target x
                        WHERE
                            x.promotion_id = P . ID
                        GROUP BY
                            x.interest_id
                ) ij, list_interest i
            WHERE i.id=ij.interest_id
            GROUP BY
                ij.interest_id,
                i.name,
                i.name_ar,
                i.name_en
            ORDER BY
                item_count DESC
            LIMIT %s
    """, [limit_by, ])
    desc = cursor.description
    if cursor.rowcount:
        return [
            dict(zip([col[0] for col in desc], row))
            for row in cursor.fetchall()
        ]
    return None
4

1 に答える 1