我正在研究DjangoTutorial03,并且不太了解来自id
的{{1}}来自哪里。
poll.id
我明白了,它是poll.question
中类Poll
的属性之一。但models.py
并非如此。它是继承自poll.id
的属性吗?我不确定,因为我从models.Model
搜索了self.id
& base.py
中的__init__.py
,但没有显示任何内容。 (它是搜索的正确位置吗?)
答案 0 :(得分:2)
如果您没有为id
关键字参数提供任何其他字段,则会自动为您的模型创建primary_key=True
字段。处理主键时的一个好习惯是使用pk
属性,而不是id
,因为pk
是真实主键字段的别名id
, my_id
或其他任何内容 - poll.id
和poll.pk
都是相同的。
行为是由Options
类(here)引起的,这是您访问_meta
属性时获得的,其属性来自Model.Meta
。< / p>