0
私のアプリケーションでは、特定のURLに基づいてアイテムのリストを表示したいと思います。たとえば、mysite.com/restaurants/chinese/と入力すると、すべての中華レストランが表示されます。 mysite.com/restaurants/american/と入力すると、アメリカのレストランなどをすべて表示したいと思います。私はmysite.com/restaurants/入力するときしかし、私はすべてのレストランを表示したいので、私はこのコードを書いた:Djangoに「空のスラグ」パターンが見つからないページ
urls.pyを
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^restaurants/', include('restaurants.urls')),
]
レストラン/ urls.py
from django.conf.urls import url
from django.views.generic import ListView
from .views import RestaurantLocationListView
urlpatterns = [
url(r'^(?P<slug>\w+)/$', RestaurantLocationListView.as_view()),
]
レストラン/ビューア
from django.db.models import Q
from django.shortcuts import render
from django.views.generic import ListView
from .models import RestaurantLocation
class RestaurantLocationListView(ListView):
def get_queryset(self):
slug = self.kwargs.get('slug')
if slug:
queryset = RestaurantLocation.objects.filter(
Q(category__iexact=slug) | Q(category__icontains=slug)
)
else:
queryset = RestaurantLocation.objects.all()
return queryset
mysite.com/restaurants/を除いた場合を除いて、すべてうまく動作します。これは、代わりに私にすべてのレストランのリストの404エラーを与えると私は理由を知らない。みんな助けてくれますか?
感謝しました。しかし、なぜこれが起こっているのか知っていますか? – flpn
@flpn 'mysite.com/restaurants /'は ''^(?P \ w +)/ $''と一致しません。 –