我正在使用以下正则表达式为我的网址。
url(r'^p/(?P<slug>[a-zA-Z0-9_-]+)/$',short_url, name='short_url')
所有网址都在这里:
urlpatterns = [
url(r'^api/', include(v1_api.urls)),
url(r'^p/(?P<slug>[a-zA-Z0-9_-]+)/$',short_url, name='short_url'),
url('^accounts/register/$',
RegistrationView.as_view(form_class=SimpleRegForm),
name='registration_register'),
# url(r'^accounts/edit/$', edit_profile, name='edit_profile'),
url(r'^messages/', include('postman.urls', namespace='postman', app_name='postman')),
url(r'^accounts/', include('registration.backends.simple.urls')),
url(r'^admin/', include(admin.site.urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
views.py文件
def short_url(request, slug):
ctx = {}
ctx['post'] = get_object_or_404(Post.objects.select_related(),slug=slug)
ctx['form'] = Form()
return render(request, 'templates/view.html', ctx)
URL假设区分大小写,因为我在mysql中为slug字段设置了这种方式。
当我执行mysql查询时,它确实完成了它的假设。
但是当我改变一个像'Y'的字母时
http://127.0.0.1:8000/p/Y9j4oL/
到'y',django再次重定向到上面的url。
http://127.0.0.1:8000/p/y9j4oL/
为什么会这样?以及如何解决它?