我在给定模型时返回列表时遇到问题。我的模型:
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:int(无效的文字,基础10:'AV Club'“。我的最终目标是能够返回给予俱乐部的avail_times列表。
有关如何修复的任何想法?这可能是一个超级基本的问题,但我是django的新手并且一直在为此而奋斗。谢谢!
答案 0 :(得分:5)
club
arg应该是Club
实例或其pk(在您的情况下为整数)。你需要这个
Available.objects.filter(club__establishment="AV Club")
答案 1 :(得分:1)
使用__
(双下划线)将外键关系跨越django
所以club
只是一个整数的ForeignKey,这就是为什么你得到ValueError
所以它看起来你想要的是建立而DrTyrsa显示了如何查询它的例子。
您可以根据需要跨越多个外键关系(了解性能影响)
如果俱乐部对国家有FK,而国家有代码字段,请想象:
Available.objects.filter(club__country__code="USA")