Han*_*ght 11 python windows django django-1.9
我正在使用django 1.9,我目前正在编码 - 在Windows命令提示符 - python manage.py makemigrations
和错误:
AttributeError:'str'对象没有属性'regex'
我试过编码:
url(r'^$', 'firstsite.module.views.start', name="home"),
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}, name='login'),
url(r'^signup/$', 'exam.views.signup', name='signup'),
url(r'^signup/submit/$', 'exam.views.signup_submit', name='signup_submit')
Run Code Online (Sandbox Code Playgroud)
在urls.py中,错误不断出现.
这是我第一次在django编码,所以我的专业知识非常有限.先感谢您.
这是整个urls.py:
from django.conf.urls import patterns, include, url
import django
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'firstsite.views.home', name='home'),
# url(r'^firstsite/', include('firstsite.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
#url(r'^admin/', include(admin.site.urls)),
django.conf.urls.handler400,
url(r'^$', 'firstsite.module.views.start', name="home"),
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}, name='login'),
url(r'^signup/$', 'exam.views.signup', name='signup'),
url(r'^signup/submit/$', 'exam.views.signup_submit', name='signup_submit'),
)
Run Code Online (Sandbox Code Playgroud)
Ala*_*air 10
首先,django.conf.urls.handler400
从urlpatterns的中间删除.它不属于那里,并且是错误的原因.
一旦修复了错误,您可以进行一些更改以更新Django 1.8+的代码
更改urlpatterns
为列表,而不是使用patterns()
导入视图(或视图模块),而不是使用您的字符串 urls()
您正在使用相同的正则表达式start
和login
视图.这意味着您将无法访问登录视图.一个修复方法是将登录视图的正则表达式更改为类似的内容^login/$
把它们放在一起,就会得到类似的东西:
from firstsite.module.views import start
from exam import views as exam_views
from django.contrib.auth import views as auth_views
urlpatterns = [
url(r'^$', start, name="home"),
url(r'^admin/', include(admin.site.urls)),
url(r'^login/$', auth_views.login, {'template_name': 'login.html'}, name='login'),
url(r'^signup/$', exam_views.signup, name='signup'),
url(r'^signup/submit/$', exam_views.signup_submit, name='signup_submit'),
]
Run Code Online (Sandbox Code Playgroud)
还要确保删除开始的空网址模式 - 迁移网址时可能会被忽略.
urlpatterns = ['', # <== this blank element ('') produces the error.
...
]
Run Code Online (Sandbox Code Playgroud)
对于好奇,我通过向模块中的check_pattern_startswith_slash
方法添加警告来发现这一点django.core.checks.urls
:
def check_pattern_startswith_slash(pattern):
"""
Check that the pattern does not begin with a forward slash.
"""
if not hasattr(pattern, 'regex'):
warning = Warning(
"Invalid pattern '%s'" % pattern,
id="urls.W002",
)
return [warning]
Run Code Online (Sandbox Code Playgroud)
而且,果然,我得到了一堆像这样的警告:
?: (urls.W002) Invalid pattern ''
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6638 次 |
最近记录: |