2012-04-20 8 views
0

SlugFieldはハイフンをサポートしていますが、SlugFieldはハイフン付きのURLをドキュメントに記載していますが、奇妙なエラーが発生します。だから、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. 

私はdumpster_rental_pricesに、物品のスラグを変更する場合 - のURL 127.0.0.1:8003/dumpster_rental_prices罰金が開きます。

これは、ブログアプリのmodels.pyです:

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 

これは、ブログのfoderにurls.pyです:

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')),  

) 

はあなたの助けのために事前にありがとうございます。

+0

と同じです。http://stackoverflow.com/questions/5231593/django-prepopulated-fields-break-with-hyphens – user9876

答えて

6

あなたの正規表現は - \wのみ英数字とアンダースコアに一致します。ハイフンにも一致させたい場合は、r'^(?P<slug>[\w-]+)/$のようなものが必要です。

+0

これは助けになりました。ありがとうございました!私は正規表現をマスターする必要があります:) –

関連する問題