Django queries - id vs pk

Art picture Art · Jan 30, 2010 · Viewed 53.7k times · Source

When writing django queries one can use both id/pk as query parameters.

Object.objects.get(id=1)
Object.objects.get(pk=1)

I know that pk stands for Primary Key and is just a shortcut, according to django's documentation. However it is not clear when one should be using id or pk.

Answer

Felix Kling picture Felix Kling · Jan 30, 2010

It doesn't matter. pk is more independent from the actual primary key field i.e. you don't need to care whether the primary key field is called id or object_id or whatever.

It also provides more consistency if you have models with different primary key fields.