2012-04-20 1 views
0

SlugField가 설명서에 표시된대로 하이픈을 지원하지만 슬러그에 하이픈이있는 URL을 열 때 이상한 오류가 발생합니다. 내가 dumpster_rental_prices에 문서의 슬러그를 변경하는 경우SlugField의 하이픈

Page not found (404) 
Request Method: GET 
Request URL: http://127.0.0.1:8003/dumpster-rental-prices 
Using the URLconf defined in dumpster.urls, Django tried these URL patterns, in this order: 
^admin/ 
^(?P<slug>\w+)/$ 
The current URL, dumpster-rental-prices, didn't match any of these. 

-는 URL 127.0.0.1:8003/dumpster_rental_prices 잘 열립니다

그래서,이 오류입니다.

from django.conf.urls import patterns, include, url 
from django.views.generic import DetailView, ListView 
from blog.models import Post 

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^(?P<slug>\w+)/$', 
     DetailView.as_view(
      model=Post, 
      template_name='detail.html')),  

) 

당신의 도움에 미리 감사합니다

from django.db import models 

class Post(models.Model): 
    title = models.CharField(max_length = 100) 
    body = models.TextField(max_length = 5000) 
    slug = models.SlugField(max_length = 100) 

    def __unicode__(self): 
     return self.title 

이 블로그 엿 먹어에 urls.py은 다음과 같습니다

이 블로그 애플 리케이션의 models.py입니다.

+0

과 동일 함 http://stackoverflow.com/questions/5231593/django-prepopulated-fields-break-with-hyphens – user9876

답변

6

문제는 정규식입니다. \w은 영숫자와 밑줄 만 일치합니다. 하이픈에도 일치 시키려면 r'^(?P<slug>[\w-]+)/$과 같은 것이 필요합니다.

+0

도와 주셨습니다. 고맙습니다! 정규식을 마스터해야합니다. :) –