アプリケーションのurls.pyで一般的なビューをセットアップする方法は?
-
29-10-2019 - |
質問
私が含むプロジェクトの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),
)
所属していません StackOverflow