2009-04-08 14 views
0

と結合を選択します。ジャンゴクエリセット:これはおそらくかなりN00B質問ですが、私はそれを動作させることはできませんAUTH_USER

私はモデルを次のようしている場合:

from django.contrib.auth.models import User 

class Entry(models.Model): 
    title = models.CharField() 
    users = models.ManyToManyField(User) 

は、どのように私は、現在ログインしているユーザーのすべてのエントリーのタイトルのリストを得るでしょうか? 次のようなもの:

?私の進歩を支援するため、事前に

感謝。私の頭の上オフ

答えて

3

、私はそれはの線に沿ってあるかもしれないと考えている:私はそれらのいずれかが動作するはずと信じて

list = Entry.objects.filter(users__id__exact = request.user.pk) 

または

list = Entry.objects.filter(users = request.user) 

many to many relationshipsの詳細については、Djangoのドキュメントを参照してください。

あなたはでこれを行うことができるはず
+0

話は、洞察力 –

1

Entry.objects.filter(users=request.user) 

Djangoは正しいが、M2Mのテーブルと結合整理し、現在のユーザーにそれを制限するWHERE句を追加します。

1
Entry.objects.filter(users=request.user) 

コードに誤りがあります。 CharFieldですMAX_LENGTHが必要です。

+0

素敵な観測のためのおかげで、私はそれについて何も考えずに非乱雑に例を、それを削除しました –

2

私は以下がよりエレガントであることがわかりましたが、それはあなた次第です。

request.user.entry_set.all() 

EDIT:ユーザーに関連付けられたエントリを検索するたびに、Entryモデルクラスをインポートする必要はありません。 user.entry_setを使用すると、その面倒を避けることができます。明らかに不足している程度

関連する問題