Changes between Version 1 and Version 2 of Ticket #16368, comment 16
- Timestamp:
- Nov 24, 2013, 3:37:18 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #16368, comment 16
v1 v2 1 1 Some findings and notes: 2 2 3 Bisection betwen 1.2 and 1.3 (the two releases the OP reports things changed from working to not working e.g. the custom Sites model gets replaced by the `contrib.sites` app one even when that app isn't listed in INSTALLED_APPS) shows the c hangeset where that change in behavior appeared is r14769.3 Bisection betwen 1.2 and 1.3 (the two releases the OP reports things changed from working to not working e.g. the custom Sites model gets replaced by the `contrib.sites` app one even when that app isn't listed in INSTALLED_APPS) shows the commit where that change in behavior appeared is r14769. 4 4 5 (Conditions are: Using the simple `foobar` project attached to this ticket and adding `django.contrib.contenttypes import generic` to its `sites/models.py` )5 (Conditions are: Using the simple `foobar` project attached to this ticket and adding `django.contrib.contenttypes import generic` to its `sites/models.py` file). 6 6 7 7 I don't think the changes from that commit in particular are wrong regarding this issue. Looking at the traceback in comment:12 IMHO what's the culprit of this unexpected behavior is the fact that `django.contrib.contenttypes.generic` contains both the definitions of the model-related generic stuff (!GenericForeignKey, etc.) AND the admin app-related specialized inlines (!GenericInlineModelAdmin, !GenericStackedInline, !GenericTabularInline.) 8 8 9 So, for example, if you import `django.contrib.contenttypes.generic` from your `models.py` because you need !GenericForeignKey then the Generic*Inline* s utff imports `django.contrib.admin` and it in its own turn imports `contrib.sites` causing the observed failure. Again, the Sites framework isn't listed in INSTALLED_APPSand what is worse: The admin app isn't either (!).9 So, for example, if you import `django.contrib.contenttypes.generic` from your `models.py` because you need !GenericForeignKey then the Generic*Inline* stuff imports `django.contrib.admin` and it in its own turn imports `django.contrib.sites` causing the observed failure. Again, the Sites framework isn't listed in `INSTALLED_APPS` and what is worse: The admin app isn't either (!). 10 10 11 11 Maybe it's time we move !GenericInlineModelAdmin, !GenericStackedInline, !GenericTabularInline from `django.contrib.contenttypes.generic` to, say, `django.contrib.contenttypes.generic_admin`? (of course this would need a deprecation process)