2013-07-19 4 views
1

두 가지 모델 인 Event와 suggestedName이 있습니다. suggestedName은 'Vote'라는 IntegerField뿐만 아니라 Event와의 ForeignKey 관계를가집니다. 나는 이벤트와 관련된 상위 5 개의 제안 된 이름을 얻고 싶다.Django ForeignKey 필드의 모든 객체 가져 오기

내 모델 :

class Event(models.Model): 
    def __unicode__(self): 
     return unicode(self.id) 
    id = models.BigIntegerField(blank = 'TRUE', primary_key='TRUE') 
    version = models.IntegerField(default = 0) 
    views = models.IntegerField(default = 0) 
    created = models.DateTimeField(editable = False) 
    modified = models.DateTimeField() 
    trained = models.BooleanField(default = False) 
    type = models.SmallIntegerField(default = 0) 


class suggestedName(models.Model): 
    def __unicode__(self): 
     return self.name 
    name = models.CharField(max_length=200, blank = 'TRUE', null = 'TRUE') 
    votes = models.IntegerField(default = 0) 
    event = models.ForeignKey(Event) 

은 내가 내보기에있는 것은 이것이다 :

e = Event.objects.get(pk=event_id) 

suggestedN = e.suggestedName_set.order_by('votes')[:5].reverse() 

하지만 어떤 결과를받지 못했습니다.

+2

가 왜'primary_key' 필드 널 (NULL)을 설정하는 관련 이름을 지정? – karthikr

+0

그래, 내가 알아서 하겠지만, 그게 문제라고 생각하지 않아. – Xonal

답변

3

시도 :

e.suggestedname_set.order_by('-votes')[:5] 

또는

class suggestedName(models.Model): 
    def __unicode__(self): 
     return self.name 
    name = models.CharField(max_length=200, blank = True, null = True) 
    votes = models.IntegerField(default = 0) 
    event = models.ForeignKey(Event, related_name='suggestions') 

하고,

e.suggestions.order_by('-votes')[:5] 
+0

아직 아무것도. e.suggestedName_set.all()이 있으면 작동하지 않습니다. 또한 나는 아마도 내 질문에 관련성있는 라인을 추가하는 것을 잊었다. 1 초 – Xonal

+0

그러면 이벤트와 관련된 데이터가 매우 명확하게 없습니다. django 관리 콘솔로 가서 – karthikr

+0

데이터를 추가해보십시오. 현재 현재 2 개의 제안 된 이름이 있으며 두 가지 모두 해당 이벤트와 연결되어 있습니다. – Xonal

관련 문제