web-dev-qa-db-fra.com

ImportError: impossible d'importer le nom générique

Je travaille avec eav-Django (entity-attribute-value) dans Django 1.9. À chaque fois que j'exécutais la commande ./manage.py runserver, j'avais l'erreur:

Unhandled exception in thread started by <function wrapper at 0x10385b500>
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.Egg/Django/utils/autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.Egg/Django/core/management/commands/runserver.py", line 109, in inner_run
    autoreload.raise_last_exception()
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.Egg/Django/utils/autoreload.py", line 249, in raise_last_exception
    six.reraise(*_exception)
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.Egg/Django/utils/autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.Egg/Django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.Egg/Django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/Library/Python/2.7/site-packages/Django-1.9-py2.7.Egg/Django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/shakil_grofers/src/Django-eav/eav/models.py", line 42, in <module>
    from Django.contrib.contenttypes import generic

J'ai essayé d'importer générique en ajoutant:

from Django.contrib.contenttypes import generic 

dans models.py. Après quelques recherches, j’ai découvert que le générique était obsolète dans Django 1.7 et n’était plus dans Django 1.9. Quelqu'un peut-il me dire dans quelle autre bibliothèque cette fonctionnalité a été ajoutée dans Django 1.9 et comment l'utiliser?

13
user5939813

Le module Django.contrib.contenttypes a été réorganisé dans Django 1.7

Au lieu de Django.contrib.contenttypes.generic.GenericForeignKey, vous pouvez maintenant utiliser Django.contrib.contenttypes.fields.GenericForeignKey. Voir l'exemple de code dans la documentation:

https://docs.djangoproject.com/fr/1.7/ref/contrib/contenttypes/#generic-relations

16
Selcuk

Mettez à jour le paquet Django.tagging à partir du site officiel de Python, et non de la source Pip, car Pip ne dispose pas de la version la plus récente.

1
Neo

Cette fonctionnalité a été déplacée dans les modules .models et .fields . C'est juste le fichier spécifique qui est supprimé; la fonctionnalité de relations génériques existe toujours, il suffit de la scinder en fichiers séparés.

1
the_unknown_spirit