Opened 13 hours ago

Last modified 46 minutes ago

#36037 new Cleanup/optimization

Documentation mentions default primary key being regular IntegerField, not BigAutoField

Reported by: Ari Pollak Owned by:
Component: Documentation Version: 5.1
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: yes UI/UX: no

Description (last modified by Ari Pollak)

BigAutoField is the default type of primary key now, and in Postgres, regular IntegerField only goes up to around 2 billion. However, a couple of pages still talk about the default primary key being an IntegerField.

Under https://docs.djangoproject.com/en/5.1/topics/db/models/#field-options:

If you don’t specify primary_key=True for any fields in your model, Django will automatically add an IntegerField to hold the primary key, so you don’t need to set primary_key=True on any of your fields unless you want to override the default primary-key behavior. For more, see Automatic primary key fields

Under https://docs.djangoproject.com/en/5.1/ref/contrib/contenttypes/#generic-relations:

  1. Give your model a field that can store primary key values from the models you’ll be relating to. For most models, this means a PositiveIntegerField. The usual name for this field is “object_id”.

Change History (3)

comment:1 by Ari Pollak, 13 hours ago

Description: modified (diff)

comment:3 by dimen61, 46 minutes ago

Hi, Ari. Since you are working with this issue, please update the tag "Owned by" to youself.

Note: See TracTickets for help on using tickets.
Back to Top