私はProduct
モデルを持っていますが、これらのフィールドは別のサービスにあるため、私の製品にはフィールドがavailable_quantity
ありませんprices
。そこで、クエリセットにカスタムフィールドを追加しました。
これは私のコードです。
for product in queryset:
product.info_bundle = {
'available_quantity': stock_info.get(product.stock_code),
'prices': 100,
}
カスタムinfo_bundle
フィールドをクエリセットに追加しました。
問題は; queryset.order_by(‘avaliable_quantity’)
これを追加したので注文できません。データベースからのものではないため、SQLはフィールドを見つけることができません。
サードパーティのサービスから取得したフィールドを使用して、データベースレベルで並べ替えることはできません。要件に応じて、メモリ内で並べ替える必要があります。しかし、あなたが提案したように、そうするとき、あなたはクエリセットをリストに変換します。私が正しく理解していれば、あなたはDRFを使用しており、get_querysetメソッドでこの並べ替えを行っています。したがって、ここでは次の方法が思い浮かびます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加