0
の値に基づいてフィルタ処理しようとすると、私は別のテーブル
class ItemFollowers(models.Model):
item = models.ForeignKey(Items, models.DO_NOTHING, db_column='item')
user = models.ForeignKey(AuthUser, models.DO_NOTHING, db_column='user')
として2つのテーブルがあり、もう一つはどのように私はいくつか続いitems
に関連UsrPosts
を選択することができます
class UsrPosts(models.Model):
item = models.ForeignKey('Items', models.DO_NOTHING, db_column='item')
# Some other fields
ですuser
?つまり、(item0、user0)、(item1、user0)、(item5、user0)のようなItemFollowers
のレコードを持つことができます。私はここでは、ユーザ(別名。request.user.id
)
がUsrPostts
itms = ItemFollowers.objects.filter(user_id=request.user.id)
qry = Q(item_id=itms[0].item.id) | ..... | Q(item_id=itms[N].item.id)
posts = UsrPosts.objects.filter(qry)
を得るために非効率的な非稼働の方法であるに基づいてUsrPosts
をフィルタリングする必要があるいくつかのフィルタの魔法は1つのトランザクションでそれを得るためにありますか?
ありがとうございます!最初の行にわずかなエラーがあります。それは 'ItemFollowers.objects.filter(user_id = request.user.id).values_list( 'item')'でなければなりません。 1つのトランザクションでより良い回答が得られない場合は、これを受け入れられた回答とします。百万回ありがとう! –
django_debug_toolbarを使って、実際には、これらの2行を実行するのに1つのクエリがかかるようです。再度、感謝します! –