2011-07-05 5 views
0

결과 : MODEL1 아이디와 핸들러의 100 개 인스턴스가 예를 들어경계와 장고 외래 키 필드 값에 제약 -이 같은 models.py이있는 경우 그들은의 검색어 영향을 미칠 수있는 방법을 예를 들어

Handler(models.Model): 
    model1 = ForeignKey(Model1) 
    model2 = ForeigKey(Model2) 
    user = models.ForeignKey(User) 

= 이 100 개 인스턴스 1 만 모델이 ID는 5로 범위 1 인 내가 같은 것을 할 때

Handles.objects.filter(model1=1).values_list('model2_id', flat=True) 

이 반복된다 (100 개) ID 값의 5 개 ID 값의 목록 또는 목록을 반환 ? 그리고 100 개의 값을 반환하면 반복되는 값마다 하나의 값만 남을 가능성이 있습니까?

+0

장고 셸을 실행하고 쿼리를보고 조정할 수 있습니다. – Tiago

+0

아니, 할 수 없다. django.settings가 정의되지 않았기 때문에 오류가 발생합니다. – krzyhub

+0

프로젝트 디렉토리에서'python manage.py shell'을 사용하십시오. –

답변

1

100 개의 id 값 목록을 반환합니다. 고유 한 5 가지를 얻고 싶다면 파이썬에서 그렇게 할 수 있습니다.

model2_id_uniq_values = list(set(Handles.objects.filter(model1=1).values_list('model2_id', flat=True))) 

가장 미세하게 조정 된 알고리즘이 아니며 세트를 사용하면 순서가 손실 될 수 있습니다. 그러나 귀하의 목적에 따라 그것은 효과가있는 것처럼 보입니다.