2016-03-29 37 views
3

Son zamanlarda Django 1.7'den 1.9'a yükseltme yaptım ve URL'leri içeriğiyle dönüştürmede sorun yaşamaya başladım. AttributeError:Django 1.9 url include AttributeError 'str' nesnesinin 'regex' özniteliği yok

myapp/urls.py:

from django.conf.urls import url 

from myapp.views import IndexView 

#app_name = 'myapp' 

urlpatterns = [ 
    url(r'^$', IndexView.as_view(), name='index'), 
] 
'str' nesne hiçbir özelliği 'ni regex' altında

urls.py dosyalar vardır

şu hata mesajını alıyorum

mysite/urls.py:

from django.conf.urls import url, include 

urlpatterns = [ 
    url(r'^myapp/', include('myapp.urls')), 

    # Have also tried the following combinations 
    #url(r'^myapp/', include('myapp.urls', 'myapp')), 
    #url(r'^myapp/', include('myapp.urls'), name='myapp'), 

    # This one works 
    url(r'^admin/', admin.site.urls), 
] 

Tam yığın takibi:

Traceback (most recent call last): 
    File "mysite/manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "lib/python3.5/site-packages/Django-1.9.1-py3.5.egg/django/core/management/__init__.py", line 353, in execute_from_command_line 
    utility.execute() 
    File "lib/python3.5/site-packages/Django-1.9.1-py3.5.egg/django/core/management/__init__.py", line 345, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "lib/python3.5/site-packages/Django-1.9.1-py3.5.egg/django/core/management/base.py", line 348, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "lib/python3.5/site-packages/Django-1.9.1-py3.5.egg/django/core/management/base.py", line 398, in execute 
    self.check() 
    File "lib/python3.5/site-packages/Django-1.9.1-py3.5.egg/django/core/management/base.py", line 426, in check 
    include_deployment_checks=include_deployment_checks, 
    File "lib/python3.5/site-packages/Django-1.9.1-py3.5.egg/django/core/checks/registry.py", line 75, in run_checks 
    new_errors = check(app_configs=app_configs) 
    File "lib/python3.5/site-packages/Django-1.9.1-py3.5.egg/django/core/checks/urls.py", line 10, in check_url_config 
    return check_resolver(resolver) 
    File "lib/python3.5/site-packages/Django-1.9.1-py3.5.egg/django/core/checks/urls.py", line 23, in check_resolver 
    warnings.extend(check_resolver(pattern)) 
    File "lib/python3.5/site-packages/Django-1.9.1-py3.5.egg/django/core/checks/urls.py", line 27, in check_resolver 
    warnings.extend(check_pattern_startswith_slash(pattern)) 
    File "lib/python3.5/site-packages/Django-1.9.1-py3.5.egg/django/core/checks/urls.py", line 63, in check_pattern_startswith_slash 
    regex_pattern = pattern.regex.pattern 
AttributeError: 'str' object has no attribute 'regex' 
+0

http: //myhost.tld/myapp/ –

+0

Yukarıdaki yığın izleme, komut satırında çalıştırılmadan geldi, ancak test sunucusunu başlatmaya çalışırken aynı hatayı alıyorum. –

cevap

2

Eğer include burada da from django.conf.urls import url, include içe gerekmez mi? Yani import yerine, include olmalıdır, bence.

1

ben soruna neden oldu Uygulamam bir dize/urls.py olarak yorumladı kod bloğu vardı

from django.conf.urls import url, include 

yerine

from django.conf.urls import url, import 
+0

Metinde kopyaladığımdan bir yazım hatası oldu. Yukarıda düzeltildi, teşekkürler! –

1

kullanarak deneyin:

from django.conf.urls import url 

from myapp.views import IndexView 

#app_name = 'myapp' 

urlpatterns = [ 
    url(r'^$', IndexView.as_view(), name='index'), 

    ''' 

    ...some old code from the Django 1.7.6 config 

    ''' 
] 

Django, dizeyi, hataya neden olan bir url nesnesi olarak okumaya çalışıyor.

Dizgeyi çıkarmak sorunu çözdü.

İlgili konular