2016-01-05 14 views
5

Sono novizio in python. Ho usato questo tutorial http://www.django-rest-framework.org/tutorial/quickstart/, ma ho riscontrato un problema con RegexURLPattern. completa analisi dello stack di emissione:AttributeError: l'oggetto 'RegexURLPattern' non ha attributo '_callback'

Unhandled exception in thread started by <function check_errors. 
<locals>.wrapper at 0x103c8cf28> 
Traceback (most recent call last): 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Django-1.10.dev20151224130822-py3.5.egg/django/utils/autoreload.py", line 226, in wrapper 
fn(*args, **kwargs) 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Django-1.10.dev20151224130822-py3.5.egg/django/core/management/commands/runserver.py", line 116, in inner_run 
self.check(display_num_errors=True) 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Django-1.10.dev20151224130822-py3.5.egg/django/core/management/base.py", line 366, in check 
include_deployment_checks=include_deployment_checks, 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Django-1.10.dev20151224130822-py3.5.egg/django/core/checks/registry.py", line 75, in run_checks 
new_errors = check(app_configs=app_configs) 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Django-1.10.dev20151224130822-py3.5.egg/django/core/checks/urls.py", line 10, in check_url_config 
return check_resolver(resolver) 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Django-1.10.dev20151224130822-py3.5.egg/django/core/checks/urls.py", line 19, in check_resolver 
for pattern in resolver.url_patterns: 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Django-1.10.dev20151224130822-py3.5.egg/django/utils/functional.py", line 35, in __get__ 
res = instance.__dict__[self.name] = self.func(instance) 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Django-1.10.dev20151224130822-py3.5.egg/django/core/urlresolvers.py", line 379, in url_patterns 
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Django-1.10.dev20151224130822-py3.5.egg/django/utils/functional.py", line 35, in __get__ 
res = instance.__dict__[self.name] = self.func(instance) 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Django-1.10.dev20151224130822-py3.5.egg/django/core/urlresolvers.py", line 372, in urlconf_module 
return import_module(self.urlconf_name) 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/importlib/__init__.py", line 126, in import_module 
return _bootstrap._gcd_import(name[level:], package, level) 
File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
File "<frozen importlib._bootstrap_external>", line 662, in exec_module 
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
File "/Users/igor/tutorial/tutorial/tutorial/urls.py", line 28, in <module> 
url(r'^', include(router.urls)), 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/rest_framework/routers.py", line 79, in urls 
self._urls = self.get_urls() 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/rest_framework/routers.py", line 321, in get_urls 
urls = format_suffix_patterns(urls) 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/rest_framework/urlpatterns.py", line 64, in format_suffix_patterns 
return apply_suffix_patterns(urlpatterns, suffix_pattern, suffix_required) 
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/rest_framework/urlpatterns.py", line 27, in apply_suffix_patterns 
view = urlpattern._callback or urlpattern._callback_str 
AttributeError: 'RegexURLPattern' object has no attribute '_callback' 

mio contenuto urls.py:

from django.conf.urls import url, include 
from rest_framework import routers 
from quickstart import views 

router = routers.DefaultRouter() 
router.register(r'users', views.UserViewSet) 
router.register(r'groups', views.GroupViewSet) 

urlpatterns = [ 
     url(r'^', include(router.urls)), 
     url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) 
] 

cosa I'am facendo male? Aiuto per favore ...

+1

Mostrare il traceback completo. Quale versione di Django e DRF stai usando? – knbk

+0

traccia stack aggiornata ... – NilsHolgerson

+1

Versione Django - 1,10 DRF - non lo so. L'ho installato con ** pip install djangorestframework ** – NilsHolgerson

risposta

13

Si utilizza la versione di sviluppo di Django. DRF non è ancora compatibile. Dovresti installare Django 1.8.xo 1.9.x invece.

+3

Solo per riferimento: Django 1.10 è supportato da RestFramework 3.4.0. –

0

Sembra che il layout del progetto differisca dallo quickstart.

from quickstart import views 

dovrebbe essere:

from tutorial.quickstart import views 
+0

Se modifico questa riga come dici tu, ho un altro errore: ImportError: nessun modulo chiamato 'tutorial.quickstart' – NilsHolgerson

+0

Come ho detto, il tuo layout di avvio rapido differisce dalla documentazione . – Linovia

+0

Assicurati di essere nella directory tutorial quando crei l'applicazione di avvio rapido. – Linovia

0

Nel mio caso, sembra che DRF non sia stato installato. Ho eseguito installando djangorestframework e il mio comando 'runserver' ha funzionato bene.

2

Ho lo stesso problema su Django 1.10 e 1.11. Soluzione: aggiornamento djangorestframework alla versione più recente

pip install -U djangorestframework 
1

Ecco bug folli. Ho sprecato due giorni del mio week-end di riconosciuto devono essere installare versioni specifiche:

  • Django 1.11 (Il mio ultimo della versione 1.11.3)
  • djangorestframework 3.7
  • pitone 3.6.5

Buona fortuna ragazzi!

Problemi correlati