2016-02-17 15 views
10

Sto lavorando con eav-django (entità-attributo-valore) in django 1.9. Ogni volta che mi è stato eseguito il comando ./manage.py runserver, ho ottenuto l'errore:ImportError: impossibile importare il nome generico

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 

ho cercato di importare generici con l'aggiunta di:

from django.contrib.contenttypes import generic 

in models.py. Poi dopo alcune ricerche ho scoperto che il generic è stato deprecato in Django 1.7 e non è più in Django 1.9. Qualcuno può dirmi in quale altra libreria questa funzionalità è stata aggiunta in Django 1.9 e come usarla?

risposta

13

Il modulo django.contrib.contenttypes è stato reorganized in Django 1.7.

Invece di django.contrib.contenttypes.generic.GenericForeignKey è ora possibile utilizzare django.contrib.contenttypes.fields.GenericForeignKey. Vedere il codice di esempio nella documentazione:

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

+0

puoi suggerire come usare eav-django con questo ?? –

+0

È necessario modificare il codice sorgente 'django-eav' e sostituire tutti' generic.GenericForeignKey's con 'fields.GenericForeignKey'. Puoi anche fare una richiesta di pull al repository mentre sei lì :) https://github.com/mvpdev/django-eav/ – Selcuk

1

Questa funzionalità è stata spostata nelle .models e .Fields moduli. È solo il file specifico che viene rimosso; la funzionalità di relazioni generiche esiste ancora, ma è divisa in file separati.

+0

puoi suggerire come usare eav-django con questo ?? –

0

Aggiorna pacchetto Django.tagging dal sito ufficiale Python, non da origine Pip, perché Pip non ha l'ultima versione.

Problemi correlati