#26977: Instantiating an abstract model with a string ForeignKey fails with
TypeError: isinstance() arg 2 must be a class, type, or tuple of classes
and types
--------------------------------------+------------------------------------
Reporter: teeberg | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: 1.9
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 1
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by charettes):
* component: Database layer (models, ORM) => Documentation
* needs_docs: 0 => 1
* type: Bug => Cleanup/optimization
Comment:
While it's not explicitly mentioned abstract models are not instantiable
in the documentation there's a mention that
[https://docs.djangoproject.com/en/1.9/topics/db/models/#model-inheritance
such models are never meant to be used in isolation].
I would argue that even if it worked in Django < 1.8 it was undefined
behavior and this breakage shouldn't be considered as a break of backward
compatiblity. Even if we were to fix the `get_default()` case abstract
models with lazily defined relationships (by passing model names instead
of model classes) are now completely unusable as they're not resolved
anymore.
Since the issue can be worked around by avoiding lazily defined
relationships on abstract models and the reported use case was never meant
to be supported I suggest we amend the documentation to be more explicit.
--
Ticket URL: <https://code.djangoproject.com/ticket/26977#comment:2>
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/065.19914823a350a52a6c6c9f6d233dac97%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.