0

我无法返回给定模型的列表。我有的模型:

class Club(models.Model):
    establishment = models.CharField(max_length=200)
    address = models.CharField(max_length=200)
    def __unicode__(self):
        return self.establishment

class Available(models.Model):
    club = models.ForeignKey(Club)
    court = models.CharField(max_length=200)
    avail_time = models.DateTimeField('available time')
    def __unicode__(self):
        return self.court

我正在尝试运行“Available.objects.filter(club="AV Club") 但我得到“ValueError: invalid literal for int() with base 10: 'AV Club'”。我的最终目标是能够返回给定俱乐部的avail_times 列表。

关于如何解决的任何想法?这可能是一个超级基本的问题,但我是 django 的新手,并且一直在努力解决这个问题。谢谢!

4

2 回答 2

5

clubarg 应该是一个Club实例或其 pk (在您的情况下为整数)。你需要这个

Available.objects.filter(club__establishment="AV Club")
于 2012-05-02T13:29:35.423 回答
1

外键关系通过使用__(双下划线)在 django 中跨越

所以club只是一个ForeignKey,它是一个整数,这就是你得到它的原因,ValueError所以看起来你想要的是建立,DrTyrsa 显示了一个关于如何查询它的示例。

您可以根据需要跨越尽可能多的外键关系(注意性能影响)

如果俱乐部有一个对国家的 FK 并且国家有一个代码字段,想象一下:

Available.objects.filter(club__country__code="USA")

https://docs.djangoproject.com/en/dev/topics/db/queries/

于 2012-05-02T13:31:41.200 回答