If you do not add a primarykey explicitly django will create a field `id` for you by default.
Normally this is an autoincrement integer.
You may name your primary key field to whatever you want.
`pk` is an alias that will always be the field you defined as your primary key field.
Normally you will be fine with the autocreated primary key fields in which case `id` and `pk`
will have the same effect, but when you choose to give your field a different name `id` and `pk`
will differ.
In your code you should prefer `pk` over `id` for the above reasons