2016-02-17 15 views
10

Pracuję z eav-django (entity-attribute-value) w django 1.9. Ilekroć wykonywał polecenia ./manage.py runserver, mam błąd:ImportError: nie można zaimportować nazwy generic

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 

próbowałem zaimportować generic dodając:

from django.contrib.contenttypes import generic 

w models.py. Następnie po kilku badaniach dowiedziałem się, że generyczny został wycofany w Django 1.7 i nie występuje już w Django 1.9. Czy ktoś może mi powiedzieć, w której innej bibliotece ta funkcjonalność została dodana w Django 1.9 i jak z niej korzystać?

Odpowiedz

13

Moduł django.contrib.contenttypes został reorganized in Django 1.7.

Zamiast django.contrib.contenttypes.generic.GenericForeignKey można teraz używać django.contrib.contenttypes.fields.GenericForeignKey. Zobacz przykładowy kod w dokumentacji:

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

+0

czy możesz sugerować, jak używać eav-django z tym? –

+0

Musisz zmodyfikować kod źródłowy 'django-eav' i zastąpić wszystkie' generic.GenericForeignKey's 'fields.GenericForeignKey'. Możesz również wysłać żądanie ściągnięcia do repozytorium, gdy jesteś na nim :) https://github.com/mvpdev/django-eav/ – Selcuk

1

Funkcjonalność ta została przeniesiona do .models same pola i moduły. To tylko konkretny plik, który został usunięty; funkcjonalność relacji ogólnych wciąż istnieje, wystarczy podzielić na osobne pliki.

+0

czy możesz sugerować, jak używać eav-django z tym? –

0

Zaktualizuj pakiet Django.tagging z oficjalnej strony Pythona, a nie ze źródła Pip, ponieważ Pip nie ma najnowszej wersji.

Powiązane problemy