1
我有兩個表,一個叫Company
,另一個叫User
,每個用戶都與一個使用ForeignKey
的公司有關。所以,我可以使用反向關係在Django獲得所有用戶的特定公司(例如company.users
)如何限制在Django中的反向關係結果
就我而言,我建立ListAPIView
其返回多個公司,我想返回最新創建的用戶。我的問題是,我不想使用prefetch_related
或select_related
,因此它會加載所有用戶,因爲我們最終可能每個公司有數千用戶!另外,我不想在單獨的查詢中加載每個最新用戶,因此我們最終每個API請求都有數十個查詢!
我已經試過這樣的事情:
users_qs = models.User.objects.filter(active=True).order_by('-created')
company_qs = models.Company.objects.prefetch_related(
Prefetch('users', queryset=users_qs[:1], to_attr='user')
).order_by('-created')
在這種情況下,prefetch_related
失敗,因爲我們無法限量的Prefetch
的queryset
過濾器(它給這個錯誤「無法一次篩選查詢已經採取了切片。「)
任何想法?