[英]how to add one object to queryset
oldHref = c.common.externalLinks.all()
newHref = m.common.externalLinks.all()
m.common.externalLinks = list(chain(oldHref,newHref))
這樣可以編譯並正常工作。
但是我想做的是
for x in oldHref:
if ... :
m.common.externalLinks = list(chain(newHref, x))
這不會編譯。
只是為了讓您了解它們的類型:
m.common.externalLinks.all() = [<List: List object>] #same as newHref
x = List object
目前尚不清楚您要做什么,但是我認為您正在嘗試獲取兩個查詢集的並集。
在這種情況下,您可以使用:
c.common.externalLinks.all() | m.common.externalLinks.all()
一種替代方法是使用:
ExternalLink.objects.filter(common__in=[m.common, c.common])
但這將取決於其余代碼的外觀。
除了python風格:嘗試使用snake_case
而不是camelCase
。
好的,這不是您想要的聯合:也許您想將m.common.externalLinks.all()
所有值添加到c.common.externalLinks
?
c.common.externalLinks.add(*m.common.externalLinks.all())
或者,如果您只想要第一個:
c.common.externalLinks.add(m.common.externalLinks.all()[0])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.