2013-08-04 3 views
1
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

당신은 무엇을 의미합니까'이 compile'하지 않는 이유는 무엇입니까? 어떤 오류가 있습니까? –

+0

'...'형식의'ellipsis'는 항상'True'로 평가됩니다. 따라서이 선을 저장할 수 있습니다. – Hyperboreus

+0

TypeError : 'List'개체를 반복 할 수 없습니다. 나는 몇 가지 조건을 '...'확인하고 있습니다. – Nayana

답변

1

을,하지만 난 당신이 두 개의 검색어 세트의 조합을 얻기 위해 노력하고있다 생각합니다.

c.common.externalLinks.all() | m.common.externalLinks.all() 

대안 사용할 수 있습니다 :

ExternalLink.objects.filter(common__in=[m.common, c.common]) 

을하지만 그 코드의 나머지 부분이 어떻게 생겼는지에 따라 달라집니다이 경우

, 당신은 사용할 수 있습니다.

파이썬 스타일을 제쳐두고 : camelCase 대신 snake_case을 사용해보십시오.

좋아요, 당신이 원하는 조합이 아닙니다 : 아마도 m.common.externalLinks.all()의 모든 값을 c.common.externalLinks에 추가 하시겠습니까?

c.common.externalLinks.add(*m.common.externalLinks.all()) 

또는, 당신 만이 첫 번째 원하는 경우 :

c.common.externalLinks.add(m.common.externalLinks.all()[0]) 
+0

두 개의 쿼리 세트를 추가해도 문제가 없습니다. 나는 .all()과 .all()을 추가하는 것이 좋습니다. 그러나 하나의 객체를 .all()에 추가하려고하면 "TypeError : 'List'객체가 반복 가능하지 않습니다."라는 오류 메시지가 표시됩니다. – Nayana

+0

하나의 객체로, m.common.externalLinks.all() [0]과 같습니다. – Nayana

+0

m.common.externalLinks.all()에서 c.common.externalLinks.all()에 개체 중 하나를 추가하여이 값이 데이터베이스에 유지되도록 하시겠습니까? 당신이 그것을하려는 방법보다는 당신이 성취하기를 원하는 것이 무엇인지 완전히 명확하지 않습니다. –

관련 문제