2

私はdjangoとWebフレームワークが初めてです。属性 Group の部分文字列を指定して、django でモデルをフィルタリングしようとしています

pack=My_pack.objects.get(Group=sumthing)

現在、私のグループ属性には、「/」で区切られた値のペアが含まれています。

Group="System/Application"

そして、「システム」と仮定して1つの値のみを指定してモデルをフィルタリングしたいのですが、どうすればdatを実行できますか????

4

4 に答える 4

2

startswithフィールドフィルターを探しています:

pack = My_pack.objects.filter(group__startswith='System')
于 2013-03-06T18:59:42.450 に答える
1

これは、このクエリの構文になります。

pack = My_pack.objects.get(group__icontains='System')
于 2013-03-06T18:56:22.950 に答える
1

django でフィルターをさまざまな方法で使用できます。

My_pack.objects.get は 1 つのインスタンスのみをもたらします。複数のインスタンスがここに存在する場合、エラーが発生します。したがって、これを try except ブロックで囲む必要があります。

pack = My_pack.objects.get(group__icontains='System')

一方で

My_pack.objects.filter は複数のインスタンスを取得し、インスタンスが見つからない場合は空のリストを取得します[]

pack = My_pack.objects.filter(group__startswith='System')

という名前のショートカット機能の 1 つを使用することもできますget_object_or_404。これは get と同様に機能します。違いは、try except ブロックで囲む必要がないことです。インスタンスを取得すると、戻り値としてインスタンスが返されますが、インスタンスが見つからない場合は、404 ステータス メッセージがスローされます。

pack = get_object_or_404(My_pack, group__startswith='System')

于 2016-04-20T09:14:13.210 に答える
0

始めるのに最適な場所は、Djangoの決定的なガイドです。ドキュメントのQuerySetAPIリファレンスを確認してみてください。

https://docs.djangoproject.com/en/1.5/ref/models/querysets/#icontains

現状のコードは機能しません。使用する:

pack = My_pack.objects.filter(Group__icontains='System')
于 2013-03-06T18:55:10.397 に答える