从Django ForeignKey Field获取所有对象

时间:2013-07-19 19:46:59

标签: django django-models django-views

我有两个模型,一个Event和一个suggestName。 suggestedName与Event有一个ForeignKey关系,以及一个名为'votes'的IntegerField。我想获得与活动相关联的前5个建议名称。

我的模特:

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()

但我没有得到任何结果。

1 个答案:

答案 0 :(得分: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]