调用foreignKey时添加其他字段

时间:2016-03-30 08:27:34

标签: mysql django

我是网络开发的新手,实际上我不知道怎么问它,但在我的main / models.py中我有;

class First(models.Model):
    two = models.ForeignKey(Two)
    name = models.CharField(max_length=250)

在我的sub / models.py中;

class Two(models.Model):
    name = models.CharField(max_length=250)
    description = models.CharField(max_length=2000)

我正在使用mysql作为数据库,当我登录我的数据库并按select * from firstTable;显示表格时,我看到了;

| two_id |name| 
|  1 |  David |    

当我调用ForeignKey(another_model)时,它会自动显示其ID。是否可以显示two_name而不是two_id?

顺便说一句,我希望我解释一下我想做什么。我真的无法解释我的一句话。如果您对标题有更好的解释,请编辑我的问题。

提前谢谢。

1 个答案:

答案 0 :(得分:3)

数据库就像这样。您可以使用联接在select语句的输出中显示name而不是id。这就是Django会为你做的事情(这就是你想使用Django的原因)。

在Django中,这将返回Two模型的实例:

first.two

这样,您就可以访问name实例的Two

first.two.name

在多个First个实例的列表中,您可以输出所有Two个名称,如下所示:

First.objects.values('two__name')

如果你真的想在SQL中查看它,请写下:

SELECT f.name, t.name FROM firstTable f, twoTable t WHERE f.two_id=t.id;