1

のurlconfを含むプロジェクトのurlconfがあるとしましょうmyapp

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

いくつ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で汎用ビューを使用するにはどうすればよいですか?

4

1 に答える 1

3

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

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

または、1つのurlconfに複数のurlpatternを入れて、それらを連結することもできます。

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),
)
于 2011-02-04T20:33:34.093 に答える