アプリケーションのurls.pyで一般的なビューをセットアップする方法は?

StackOverflow https://stackoverflow.com/questions/4902506

質問

私が含むプロジェクトのurlconfを持っているとしましょう myapp's urlconf:

urlpatterns = patterns('',
    (r'^myapp', include(myapp.urls)),
)

そしてa myapp/urls.py いくつかのルートが定義されています:

urlpatterns = patterns('myapp.views',
    (r'^manager$', 'manager_view'),
)

一般的なビューを使用したい myapp (つまり、アイテムリストを表示する)が、で定義する場合 myapp/urls.py このような:

items_list = {
    'queryset': Item.objects.all(),
}

urlpatterns = patterns('myapp.views',
    (r'^manager$', 'manager_view'),
    (r'^items/(?P<page>[0-9]+)$', 'django.views.generic.list_detail.object_list',
        items_list),
)

これは機能しません myapp.views プレフィックス。もちろん、プロジェクトのurls.pyにジェネリックビューパターンを配置することもできますが、アプリのために別のurls.pyを使用することは、もはや意味がありません。

では、アプリのurlconfで一般的なビューを使用するにはどうすればよいですか?

役に立ちましたか?

解決

プレフィックスをまったく使用する必要はありません - 各URLの各ビューへのフルパスを指定できます。

urlpatterns = patterns('',
    (r'^manager$', 'myapp.views.manager_view'),
    (r'^items/(?P<page>[0-9]+)$', 'django.views.generic.list_detail.object_list',
        items_list),
)

または、単一のurlconfに複数のurlpatternsを使用して、それらを連結することもできます。

urlpatterns = patterns('myapp.views',
    (r'^manager$', 'manager_view'),
)

urlpatterns += patterns('django.views.generic',
    (r'^items/(?P<page>[0-9]+)$', 'list_detail.object_list',
        items_list),
)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top