4

一般的なビューを使用して、特定の著者のブログ レコードを表示しようとしています。

urlpatterns = patterns('',
    url(r'^blog/(?P<uid>[\d+])/$', ListView.as_view(
        queryset=Blog.objects.filter(published=True, author=uid),
    ), name='blog_list'),

しかし、私はNameError: name 'uid' is not definedを取得します

この方法で urlconf という名前のグループを使用することは可能ですか?

4

1 に答える 1

3

次のように ListView の独自の実装を作成する必要があります。

class BlogListView(ListView):
    model = Blog

    def get_queryset(self):
        return super(BlogListView, self).get_queryset().filter(
            published=True, author__id=self.kwargs['uid'])

そしてそれを URLconf で使用します:

urlpatterns = patterns('',
    url(r'^blog/(?P<uid>[\d+])/$', BlogListView.as_view(),
        name='blog_list'),

私の意見では、クラスベースのジェネリック ビューのドキュメントは、まだ Django プロジェクトの残りの部分と完全に一致しているとは言えませんがListView、この方法で使用する方法を示す例がいくつかあります。

https://docs.djangoproject.com/en/1.3/topics/class-based-views/#viewing-subsets-of-objects

于 2012-06-23T21:40:01.733 に答える