One of reasons is that id is builtin attribute of every object, django manual prefers pk .