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
答案 0 :(得分:1)
目前还不清楚你要做什么,但我认为你正在努力获得两个查询集的联合。
如果是这种情况,您可以使用:
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])