Django在ListVi中获取自定义查询集

2024-10-03 21:36:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个listview,我用一种非常标准的方式访问它来返回所有的元对象。在

#url 
url(r'^metaobject/$', MetaObjectList.as_view(),name='metaobject_list'),

#ListView
class MetaObjectList(ListView):
    model = MetaObject

我最近添加了一个搜索表单,我想扫描我的对象(我有大约5个字段,但我简化了示例)。我想做的是对我的特定子集重用MetaObjectList类视图。我猜我需要重写get_queryset方法,但我不清楚如何将queryset从FormView获取到listview。我在formveiew的form_valid函数中调用as_view()时遇到了一些麻烦,但无法使其正常工作,而且它看起来很糟糕。在

^{pr2}$

我还试图将数据从form视图发布到listview,但这似乎需要将表单逻辑重新写入listview。在

我使用的是python3.x和django1.11。在


Tags: 对象nameformview视图url表单标准
1条回答
网友
1楼 · 发布于 2024-10-03 21:36:25

我发现我觉得比对这个问题的评论更优雅:

我的formvalid现在指向list对象的as_view方法,并传递我想要的请求和queryset

def form_valid(self, form):
    #build a queryset based on form
    searchval=form.cleaned_data['search']
    list = MetaObject.objects.filter(val=search)
    return MetaObjectList.as_view()(self.request,list)

这是我用来修改查询集的一个post

^{pr2}$

唯一明显的变化是使用kwargs使其更加清晰。否则这似乎很有效。在

相关问题 更多 >