0

URLを以下のように記述する方法がありますか?unitedstates.com/state/city djangoでクラスベースのビューを使用していますか? 状態ビューにはスラッグがあり、状態モデルがあります。 は同じです。私はunitedstates.com/stateまたはunitedstates.com/cityを生成することができますが、私はunitedstates.com/state/cityを取得する方法を見つけ出すことはできません。クラスベースのビューでクリーンな名前ベースのURL

ドキュメントは私には役に立ちません。私は好奇心から知りたいだけです。何か助けや説明があれば幸いです。

ありがとうございます。

+0

あなたはこれまでに何をしましたの? – v1k45

+0

はい、もちろんこれは可能です。どこに問題がありますか? –

答えて

1

はい、これを行うことができます。私はここに一つの例を挙げています。

あなたのモデルを定義します。

class State(models.Model): 
    slug = models.SlugField() 

class City(models.Model): 
    slug = models.SlugField() 
    state = models.ForeignKey(State) 

はあなたのビューを定義します。

from django.views.generic import DetailView 
from .models import City 

class CityDetailView(DetailView): 

    def get_object(self): 
     city = City.objects.get(
      slug=self.kwargs.get('city'), 
      state__slug=self.kwargs.get('state') 
     ) 
     return city 

そして最後に、あなたのurls.pyにこれを追加します。

from django.conf.urls import url 
from .views import CityDetailView 

urlpatterns = [ 
    url(r'^(?P<state>\w+)/(?P<city>\w+)/$', CityDetailView.as_view()), 
] 
+1

ありがとうございます。私はそれをテストしました。できます。 – user2901792

関連する問題