2013-07-19 2 views
1

У меня есть две модели: событие и предлагаемое имя. suggestName имеет отношения ForeignKey с Event, а также IntegerField, называемые «голосами». Я хочу получить 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' поле Nullable? – karthikr

+0

Упс. Да, я это выдержу, но я не думаю, что это проблема. – Xonal

ответ

3

Try:

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.suedName_set.all(). Также я просто понял, что забыл добавить, возможно, соответствующую строку в моем вопросе. Одна секунда – Xonal

+0

Тогда очень ясно, что у вас нет данных, связанных с событием. Перейдите в консоль администратора django и попробуйте добавить некоторые данные – karthikr

+0

. В настоящее время существует 2 предложенныхNames, и оба они связаны с данным событием. – Xonal

Смежные вопросы