2017-10-08 152 views
0

我有一個查詢設置,看起來像這樣。添加到從另一個查詢集查詢集Django

<QuerySet [<Room: localhost>, <Room: chat>]> 

這裏面room

<QuerySet [<RoomShare: Shared room u'208349023840928', for company 2>]> 

其內部存儲roomshare

如果我打印第二查詢拿到房我只是使用的名稱。

for x in roomshare: 
      print(x.room.room_name) 
which gives me `Room Fun` 

我想將此Room_Fun添加到第一個查詢集。

它應該是這樣的

<QuerySet [<Room: localhost>, <Room: chat>, <Room: Room_Fun]> 

我嘗試了不同的方法的,但不能達到我想要的結果。 另外,第二個查詢集可以有多個1個roomShare,因此我可能必須使用forloop將多個時間添加到第一個查詢集。

回答

0

您可以使用itertools chain方法追加查詢集,列表等 比方說,你已經有兩個查詢集roomsroomshares

from itertools import chain rooms_from_roomshares = [x.room for x in roomshares] all_rooms = list(chain(rooms, rooms_from_roomshares))

如果我想要讓說不僅僅是roomshares名字,但也ID
+0

,這樣纔可以[X在roomshares X]? – xxxxxerwwrxx

+0

[x房間共享中的x.id]會給你房間共享ID的列表。 [x房間共享中的x.room.id]會爲您提供房間共享中的房間ID列表。 –

+0

但是隻有房間名稱與房間名稱相關聯,我在房間共享中的查詢集具有房間共享的名稱和房間共享的名稱,所以我想知道是否也可以附加ID,而不是隻是名稱 – xxxxxerwwrxx