1

我遇到的问题是我想使用视图(而不是修改它)来显示组中的所有人。问题是我不知道如何使用正则表达式中的 pk 在同一行进行过滤...

我想要类似的东西:

url(r'^groups/(?P<pk>\d+)/$', login_required(MyListView.as_view(model=Person, queryset=Person.objects.filter(groups__id=pk))), name='person_group_list'),

有了这个我得到:“/clients/的NameError

名称‘pk’未定义”

有什么提示吗?

4

1 回答 1

2

你真的需要写一个视图。这就是基于类的视图的优势,您可以简单地从 MyListView 继承。(我知道你说过你不想这样做,但这确实是正确的方法)。

from your_app.views import MyListView
from your_app.models import Person

class MySpecialListView(MyListView):
    model = Person
    get_queryset(self, *args, **kwargs):
        return Person.objects.filter(groups__id=self.kwargs['group_pk']))

作为旁注,我会在您的正则表达式中将 pk 更改为 group_pk 以避免任何可能的冲突。

url(r'^groups/(?P<group_pk>\d+)/$', login_required(MySpecialListView.as_view(), name='person_group_list')
于 2013-02-09T11:37:41.283 回答