poll.id来自哪里?

时间:2014-06-01 09:45:38

标签: python django

我正在研究DjangoTutorial03,并且不太了解来自id的{​​{1}}来自哪里。

poll.id我明白了,它是poll.question中类Poll的属性之一。但models.py并非如此。它是继承自poll.id的属性吗?我不确定,因为我从models.Model搜索了self.id& base.py中的__init__.py,但没有显示任何内容。 (它是搜索的正确位置吗?)

1 个答案:

答案 0 :(得分:2)

如果您没有为id关键字参数提供任何其他字段,则会自动为您的模型创建primary_key=True字段。处理主键时的一个好习惯是使用pk属性,而不是id,因为pk是真实主键字段的别名idmy_id或其他任何内容 - poll.idpoll.pk都是相同的。

行为是由Options类(here)引起的,这是您访问_meta属性时获得的,其属性来自Model.Meta。< / p>