Opened 19 years ago
Closed 17 years ago
#1662 closed defect (fixed)
'string' form references in models don't appear to work
Reported by: | Russell Keith-Magee | Owned by: | Russell Keith-Magee |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | magic-removal |
Severity: | normal | Keywords: | |
Cc: | mir@…, justinarthur@… | Triage Stage: | Unreviewed |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Michael Radziej <mir@…> reports that the following two models, which use the 'string' form of model reference in Foreign Keys, fail:
Version 1 (back referenced model):
class Wenga(models.Moldel): ... class Benga(models.Model): wenga = ForeignKey("Wenga")
Version 2: Forward referenced model
class Benga(models.Model): wenga=ForeignKey("Wenga") class Wenga(models.Model): ...
Version 2 succeeds syncdb, but fails on model import. Version 1 fails on syncdb with the same error that Version 2 provides during syncdb:
Traceback (most recent call last): File "./manage.py", line 11, in ? execute_manager(settings) File "/opt/local/lib/python2.4/site-packages/django/core/management.py", line 1226, in execute_manager execute_from_command_line(action_mapping) File "/opt/local/lib/python2.4/site-packages/django/core/management.py", line 1152, in execute_from_command_line action_mapping[action]() File "/opt/local/lib/python2.4/site-packages/django/core/management.py", line 420, in syncdb _check_for_validation_errors() File "/opt/local/lib/python2.4/site-packages/django/core/management.py", line 956, in _check_for_validation_errors num_errors = get_validation_errors(s, app) File "/opt/local/lib/python2.4/site-packages/django/core/management.py", line 851, in get_validation_errors for r in rel_opts.get_all_related_objects(): File "/opt/local/lib/python2.4/site-packages/django/db/models/options.py", line 121, in get_all_related_objects if f.rel and self == f.rel.to._meta: AttributeError: 'str' object has no attribute '_meta'
Change History (6)
comment:1 by , 19 years ago
comment:3 by , 19 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
(In [3195]) Fixed #1662 -- Added resolver for string-form model references for models that have already been loaded, with tests to validate both forward and backward referenced model names. Light refactoring of model loading to make regression tests behave more like normal model loading. Also clarifies the text of some validation errors.
comment:5 by , 17 years ago
Cc: | added |
---|---|
Resolution: | fixed |
Status: | closed → reopened |
I'm able to reproduce this in [5677].
comment:6 by , 17 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Actually, this is only reproducible for me if the string-referenced model is defined in another app of the same project. I'll split that into an enhancement request. Re-marking as fixed.
Hmm ... seems ticket #167 is about the same. Now, which one should be closed as duplicate? Other ticket has more information, this one is assigned to an earlier milestone. Russell?
Also, I'm really afraid there's too much to do for this to really make it into 0.92. See the dicussion in the other ticket.