Hey everyone,

While upgrading from 1.9 to 1.10, I got errors that lazy ForeignKey 
references cannot be resolved similar to the following (full stack trace is 
included below):

ValueError: Related model 'appname.ModelName' cannot be resolved

This occurs with anything from simple models to abstract models, 
referencing other models within the same app, other apps, and recursive 
relationships ('self').

In searching, I've found similar issues relating to migrations, however 
this happens when I call manage.py "runserver" or "shell". I haven't run or 
defined any migrations in 1.10 yet.



Full stack trace (using Django 1.10; directories and the app name have been 
obfuscated from the original)
Note: This error references a model using an abstract model, but as stated 
above this is just one instance where it doesn't work. If I were to 
temporarily comment out the field, it would just error out with the next 
one.

user@host:/pwd$ python manage.py shell
Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/site-packages/django/core/management/
__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/site-packages/django/core/management/
__init__.py", line 341, in execute
    django.setup()
  File "/usr/local/lib/python2.7/site-packages/django/__init__.py", line 
27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python2.7/site-packages/django/apps/registry.py", 
line 108, in populate
    app_config.import_models(all_models)
  File "/usr/local/lib/python2.7/site-packages/django/apps/config.py", line 
199, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/lib/python2.7/importlib/__init__.py", line 37, in 
import_module
    __import__(name)
  File "/pwd/app/models.py", line 482, in <module>
    class Employee(EmployeeDatedFieldsAbstractModel, AbstractBaseUser, 
PermissionsMixin):
  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", 
line 309, in __new__
    new_class._prepare()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", 
line 349, in _prepare
    if not opts.managers or cls._requires_legacy_default_manager():
  File "/usr/local/lib/python2.7/site-packages/django/utils/functional.py", 
line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/options.py", 
line 374, in managers
    manager = copy.copy(manager)
  File "/usr/local/lib/python2.7/copy.py", line 88, in copy
    rv = reductor(2)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", 
line 208, in __getstate__
    self._fetch_all()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", 
line 1085, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", 
line 54, in __iter__
    results = compiler.execute_sql()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler
.py", line 824, in execute_sql
    sql, params = self.as_sql()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler
.py", line 369, in as_sql
    extra_select, order_by, group_by = self.pre_sql_setup()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler
.py", line 46, in pre_sql_setup
    self.setup_query()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler
.py", line 37, in setup_query
    self.select, self.klass_info, self.annotation_col_map = 
self.get_select()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler
.py", line 194, in get_select
    for c in self.get_default_columns():
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler
.py", line 516, in get_default_columns
    column = field.get_col(alias)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/fields/
related.py", line 954, in get_col
    return super(ForeignKey, self).get_col(alias, output_field or 
self.target_field)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/fields/
related.py", line 855, in target_field
    return self.foreign_related_fields[0]
  File "/usr/local/lib/python2.7/site-packages/django/db/models/fields/
related.py", line 595, in foreign_related_fields
    return tuple(rhs_field for lhs_field, rhs_field in self.related_fields 
if rhs_field)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/fields/
related.py", line 582, in related_fields
    self._related_fields = self.resolve_related_fields()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/fields/
related.py", line 567, in resolve_related_fields
    raise ValueError('Related model %r cannot be resolved' % 
self.remote_field.model)
ValueError: Related model 'app.Department' cannot be resolved


-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/9f06986d-62d7-4ab8-9027-bfa88ce5ad06%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to