#36844: Update packaging tutorial and AppConfig docs to mandate setting
default_auto_field for reusable apps
-------------------------------------+-------------------------------------
Reporter: Jacob Walls | Type:
| Cleanup/optimization
Status: new | Component:
| Documentation
Version: dev | Severity: Normal
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 1 | UI/UX: 0
-------------------------------------+-------------------------------------
A reusable (third-party) app that:
- has models
- but does ''not'' set `AppConfig.default_auto_field`
is in a
[https://github.com/django/django/pull/20319#discussion_r2631747194
"completely broken" situation], given that any user attempting to use
`DEFAULT_AUTO_FIELD` in their own settings will generate migrations for
the reusable app, which can conflict with later migrations shipped by that
app, or possibly get stored in the app's installation location:
> Third-party apps should set default_auto_field so that the migrations
the app includes match the models.
This discussion took place in a
[https://github.com/django/django/pull/20319 PR that was not accepted]
proposing to advise on user workarounds. Instead, I think we should advise
app authors to do the right thing.
That would include:
- strengthening the wording in `AppConfig.default_auto_field` docs,
replacing "You can use this... for third party applications" to something
like "Third-party applications *must* set this ..."
- Fixing the tutorial to show this step under
[https://docs.djangoproject.com/en/dev/intro/reusable-apps/#packaging-
your-app "Packaging your app"]. To my knowledge (I'm hoping someone will
confirm), when you follow the tutorial and arrive at this step modeling
how to make your app reusable, there is no `default_auto_field` attribute
on the `AppConfig` in apps.py.
This would be an approachable issue for a new contributor, as it involves
following the tutorial to verify completeness and accuracy.
--
Ticket URL: <https://code.djangoproject.com/ticket/36844>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/django-updates/0107019b90710518-ffa26ba1-70aa-4869-8210-950ab934ef4a-000000%40eu-central-1.amazonses.com.