1
2つの値に基づいてクエリセットをフィルタリングしたいと思います。djangoで範囲フィルタが動作しない
2つの数字の間に結果が欲しいです。私はいくつかのコードを試していますが、それは動作していません。私は適切な結果を返しませんでした。 私のコード
def project(request):
try:
proTitle = request.GET.get('title')
ProDescription = request.GET.get('description')
funAria = request.GET.get('funAria')
femaleReq = request.GET.get('femaleReq')
cost_gte = int(request.GET.get('cost_gte'))
cost_lte = int(request.GET.get('cost_lte'))
except:
pass
if cost_gte and cost_lte :
list4 = []
result = Project.objects.filter(budgeted_cost__gte=cost_gte , budgeted_cost__lte=cost_lte)
print result
for res in result:
list4.append(res.project_id)
data ={'cost result':list4}
return HttpResponse(json.dumps(data))
return HttpResponse(json.dumps(data), content_type='application/json')
、それはすべての製品を返し、それが機能しない理由、それはnone.Iを返すいくつかの時間を理解カントいくつかの時間。
私はまた範囲で
result = Product.objects.filter(cost__range=(cost_gte,cost_lte))
を試してみたがsame.Pleaseは私が間違っているの何私を導い振る舞いもあります。 Pythonで
おそらく 'cost_rage'→' cost_range'ですか? –
あなたが 'filter'に渡す値が異なる場合、結果は明らかに同じではありません。固定値でテストしようとしています(* 'request.GET' *からのものではありません)。何が起こるかを見てください。 –
インデントとタイプミスを除いて、ここにあまり間違いはありません。モデル、実際のデータ、使用されている実際の値を確認する必要があります。しかし、特にこれはあなたの実際のコードではないようです(ここにコードを入力したときにタイプミスやインデントが発生する)ので、コピー&ペーストしなかったために見えない別の問題があるかもしれません。 – RemcoGerlich