0

私は Django を初めて使用するので、助けていただければ幸いです。

Django に関する古い本から、以下のコードを引用しています。ただし、django.views.generic.list_detail廃止されました。このコードを で書き直す方法を教えてもらえますかdjango.views.generic.list.ListView?


from django.conf.urls import patterns, include, url
from cmsproject.cms.models import Story

info_dict = {'queryset': Story.objects.all(), 'template_object_name': 'story'}

urlpatterns = patterns('django.views.generic.list_detail',
     url(r'^(?P<slug>[-\w]+)/$', 'object_detail', info_dict, name="cms-story"),
     url(r'^$', 'object_list', info_dict, name="cms-home"),
)
4

1 に答える 1

0

やりたいことは Story モデル オブジェクトのリストを取得することだけだと仮定すると、これは views.py と urls.py を記述する 1 つの方法です。

views.py で:

from django.views.generic.list import ListView, DetailView

from cmsproject.cms.models import Story   

class StoryListView(ListView):
    model = Story
    template_name = "cms/story_list.html"

class StoryDetailView(DetailView): 
    model = Story
    template_name = "cms/story_detail.html"

template_nameプロジェクト内のどこにhtmlファイルを配置したかによって異なります。を設定することmodel = Storyで、ListView取得しStory.objects.all()ます。カスタマイズ、フィルタリング、コンテキストの追加などを行うために、クラス ベースのビューが親ビューから継承するメソッドをオーバーライドできます (たとえば、StoryListView では ListView メソッドをオーバーライドできます)。

urls.py で

from django.conf.urls import patterns, url

from cmsproject.cms.views import StoryDetailView, StoryListView 


    urlpatterns = patterns('',

         url(r'^(?P<slug>[-\w]+)/$', StoryDetailView.as_view(), name="cms-story"),

         url(r'^$', StoryListView.as_view(), name="cms-home"),
    )

urls.py は、url と View オブジェクトの間のマッピングと考えてください。定義nameすると、テンプレートの url テンプレート タグにパラメーターとして名前を含めることで、他のビューを参照/リンクできます。

非常に役立つ参考資料:

于 2013-09-17T08:01:15.710 に答える