1

URL でキャッチされた変数を汎用ビューの Q オブジェクトに渡すことができるようにしたいと考えています。

ページネーション、ソート、フィルタリングなどを処理する my_views.view としてインポートされる汎用ビューを作成しました...

一部のページではいくつかの OR フィルターが必要になるため、Q オブジェクトを使用する必要があります。各ページは、さまざまなフィールド (およびモデル) に基づいてフィルター処理されます (したがって、一般的なビュー)。

例:

view_customers_info = {
    "queryset" : Customer.all(),
    'qobject': Q(status=stat),
    "extra_context" : {
        "title" : 'View Customers',
    },
    'template_name': 'customer/view.html',
}
urlpatterns = patterns('',
  url(r'^customer/(?P<stat>\w+)/$', my_views.view, view_customers_info),
)

この例では、次の行は stat がグローバル名ではないことを示しています。

'qobject': Q(status=stat),

URL でキャッチされた変数をディクショナリ view_customers_info に渡すにはどうすればよいですか?

他のページには次のような Q オブジェクトがあるため、単純にその Q オブジェクトを汎用ビューに移動することはできません。

'qobject': (Q(type=type) | Q(status=stat)),

ありがとう。

4

2 に答える 2

4

カスタムビュー/関数で汎用ビューをラップすることによってのみこれを行うことができると思います。こちらもご覧ください:

http://docs.djangoproject.com/en/1.1/topics/generic-views/#complex-filtering-with-wrapper-functions

于 2010-02-05T21:27:18.077 に答える
0

フィールド名の周りの引用符が足りないだけだと思います。

    'qobject': Q(status=("%s" % stat)),
于 2010-02-05T21:24:10.283 に答える