-1
out_links = Link.objects.filter(iweb=iweb_id).order_by('-pub_date')  
for link in out_links:
    comments = LinkComment.objects.filter(link=link.id)

Filter メソッドはオブジェクトのリストを作成するので、out_links はリストですよね?

次に、for ループの後、もう一度フィルタリングして、LinkComments クラス内のオブジェクトをリンク ID で検索します。

ただし、オブジェクトまたはリストとしてリンクを参照する必要がありますか? ジャンゴビューである限り、私はそれについて確信が持てませんか? link.idまたはlink['id']?私のpythonは言っています[ ]が、djangoは動作しません。

4

3 に答える 3

3

out_links はクエリセットであり、 for ループでは、次の方法ですべての LinkComments に到達できます。

for link in out_links:
    comments = link.linkcomment_set.all()
于 2012-06-01T14:53:57.167 に答える
1

ドキュメントで説明されているように、フィルターはクエリセットを作成します: https://docs.djangoproject.com/en/dev/ref/models/querysets/#methods-that-return-new-querysets

のように QuerySet に添字をcomments[n]付けると、n 番目のメンバーが取得されます (リストの場合と同様)。order_by がある場合、それはその句で指定された順序です。添字表記を使用して ID でクエリを実行することはできません。

QuerySet を反復処理すると、python モデル オブジェクトである queryset のメンバーが取得され、コード内の他の場所と同じように扱うことができます。

于 2012-06-01T14:58:59.213 に答える
0

Filter メソッドはオブジェクトのリストを作成するので、out_links はリストですよね?

違う。QuerySet objectを作成しますが、これもたまたま iterable です。

于 2012-06-01T14:53:56.460 に答える