Django 1.8 - FieldError: Impossible de résoudre le mot-clé dans le champ

J'ai récemment mis à niveau à partir de Django 1.6 à Django 1.8. Quand je l'ai fait, j'ai trouvé que je n'étais plus en mesure de faire une recherche en arrière à travers une relation de clé étrangère comme décrit dans:
https://docs.djangoproject.com/en/1.8/topics/db/queries/#lookups-that-span-relationships.

Le système est configuré de sorte qu'il y a deux projets qui utilisent la même base de données. (Pas mon idée, mais pas quelque chose que je voudrais changer maintenant.) Le projet, où les modèles ont été initialement créés et ont migré fonctionne très bien après la mise à niveau, mais l'autre n'a pas. Les modèles de fichier pour chacun d'eux est identique.

Models.py:

class Site(models.Model):
    name = models.CharField(max_length=255)

    class Meta:
        app_label = 'project1'

class Page(models.Model):
    title = models.CharField(max_length=255)
    site = models.ForeignKey('Site')

    class Meta:
        app_label = 'project1'

Erreur de retraçage de l'Django Shell:

>>> x = models.Site.objects.filter(page__id=1000)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/user_name/project2/venv/local/lib/python2.7/site-packages/django/db/models/manager.py", line 127, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/user_name/project2/venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 679, in filter
    return self._filter_or_exclude(False, *args, **kwargs)
  File "/home/user_name/project2/venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 697, in _filter_or_exclude
    clone.query.add_q(Q(*args, **kwargs))
  File "/home/user_name/project2/venv/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1314, in add_q
    clause, require_inner = self._add_q(where_part, self.used_aliases)
  File "/home/user_name/project2/venv/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1342, in _add_q
    allow_joins=allow_joins, split_subq=split_subq,
  File "/home/user_name/project2/venv/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1154, in build_filter
    lookups, parts, reffed_expression = self.solve_lookup_type(arg)
  File "/home/user_name/project2/venv/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1035, in solve_lookup_type
    _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
  File "/home/user_name/project2/venv/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1401, in names_to_path
    "Choices are: %s" % (name, ", ".join(available)))
FieldError: Cannot resolve keyword 'page' into field. Choices are: name, id

Dans le premier projet, la même requête fonctionne comme prévu:

>>> x = models.Site.objects.filter(page__id=1000)
[<Site: http://stackoverflow.com>]
c'est que le traceback? Les deux projets ont le même Django version?
C'est la pleine de sperme. Les deux projets sont Django 1.8.3
définir un related_name dans site = models.ForeignKey('Site', related_name='pages') et faire la requête à l'aide. Docs ici
Ces modèles dans la même application?
Les modèles sont dans la même application.

OriginalL'auteur TheCaptan | 2015-08-06