0

以前の一般的なビューでは、私はこのようなものを持っていました

link_info_dict = {
    'queryset' : Link.objects.all(),
    'date_field' : 'pub_date',
}
patterns('django.views.generic.date_based',
    url(r'^links/$', 'archive_index', link_info_dict, 'coltrane_link_archive_index'),
....
)

新しいクラスベースの汎用ビューを使用すると、次のように動作するように見えます。

from django.views.generic.dates import ArchiveIndexView
....
urlpatterns = patterns('',
url(r'^links/$', ArchiveIndexView.as_view(**link_info_dict), name='coltrane_link_archive_index'),
....
)

私は物事を最善の方法で行っているかどうか疑問に思っています。「as_view」メソッドを呼び出す必要があるため、最初にビューをインポートする必要があるため、「django.views.generic.date_based」を「因数分解」することはできません。私は実際にはほぼすべての date_based ジェネリック ビューを使用しています。最初にこれらすべてのビューをインポートし、pattern('' 空のプレフィックスを正しいアプローチにしますか? すべてのアプリをこの新しいスタイルのビューに移行する場合は、正しい方法で処理することをお勧めします:)

ありがとう

4

1 に答える 1

2

これは問題ないようです。他に問題はありませんか? これはと一致します。

from django.views.generic.dates import ArchiveIndexView

from myapp.models import Article

urlpatterns = patterns('',
    url(r'^archive/$',
        ArchiveIndexView.as_view(model=Article, date_field="pub_date"),
        name="article_archive"),
)

そして、それはドキュメントと一致しています

as_view() に渡される引数は、クラスに設定された属性をオーバーライドします。

于 2013-01-01T05:47:49.810 に答える