-1

このコードはどのようになっていますか?ステップバイステップ

keyword = request.GET['keyword']
for l in keyword.split():
    q = q | (
        Q(title__icontains=smart_str(l)) |
        Q(content__icontains=smart_str(l)) 
        )
    result = News.objects.filter(q)

各行で何が起こっていますか?

4

1 に答える 1

1

GET 呼び出しからキーワードのリストを受け取り、それをキーワードのリストに分割します。

キーワードをループし、それらのそれぞれについて、q に格納される OR クエリを作成します。タイトルまたはコンテンツにキーワードが含まれているニュース オブジェクトのデータベースをクエリしています。

最後の行では、クエリに一致するニュース アイテムを除外しています。

Q パラメータの詳細については、https ://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects をご覧ください。

| | char は OR を意味します。

于 2012-05-28T11:08:36.647 に答える