2016-12-23 3 views
1

私は、データがユニークな番号とユニークではない名前で編成されたデータベースを持っています。Djangoと同じクエリで.filterと.getを使用できますか?

NumCOL: NameCOL: 
1  Jay 
2  Joel 
3  Joey 
4  Joel 

フィルタとget文を使用して、数字が特定の数に等しい名前を取得できますか?のは、私は、ユーザーがデータベースから数を選択できるフォームがあり、ユーザーは2

num = request.POST.get('FormNumber') #num = 2 
name = Database.objects.filter(NumCOL=num).get('NameCOL') 
return HttpResponse(name) 

はこのような何かを行うことができます番号を選びましょうか?私は、ユーザーが自分の番号に基づいて選択するどこにでも名前をつかみたい。コードに基づいて私は応答Joelを得なければなりません。

ありがとうございました!

+0

これは、「取得」とは異なります。単一の列を取得するのではなく、クエリに一致する単一の項目を取得するためのものです。 –

答えて

1

コメントのdanielと彼の答えのmetmirrが指摘したように、このようにする必要はありません。以下はうまく動作します。

name = Database.objects.get(NumCOL=num) 
return HttpResponse(name.NameCOL) 

単一のモデルのすべてのフィールドを取得しても、クエリにオーバーヘッドが追加されることはありません。 Getは、単一の列ではなく、単一の行を取得するために使用されます。

単一の列を取得するには、あなたが行うことができます:

name = Database.objects.filter(NumCOL=num).values('NameCol') 

をあなたは私たちが最初にモデルに名前を付ける慣例により、注意点として

name = Database.objects.filter(NumCOL=num).values_list('NameCol', flat=True) 

を行うことができ、単一のセルを取得するには大文字の文字とフィールドはすべて小文字です。

+0

答えをありがとう!この情報は非常に役立ちます! – GreenSaber

+0

あなたは大歓迎です。私は助けになってうれしいです。あなたはここでもまだ新しいですから、ここで「感謝」と言っているのが好ましい方法は、良い質問と有益な回答(一度それを行うに十分な評判があれば)を投票し、最も有益な答えを受け入れることですあなたが聞いた質問にも(あなたの評判への少しの刺激を与える)。 [誰かが答えるとき] – e4c5

+0

私は票決に疲れましたが、私は新しくなりました。( – GreenSaber

2
name = Database.objects.get(NumCOL=num) 
#name = Database.objects.filter(NumCOL=num) 
return HttpResponse(name.NameCOL) 
関連する問題