【发布时间】:2014-02-19 20:30:32
【问题描述】:
我有一个视图处理程序,我需要在其中获取特定查询的结果页面。但是,在获取结果后,我想向对象添加一个字段并根据该字段的内容删除某些对象。像这样的:
objResultSet = MyModel.objects.filter(some_filter_conditions)
lstToRemove = []
for objResult in objResultSet:
objResult.extra_field = get_extra_field_contents(objResult)
if should_remove_because_of_field(objResult.extra_field):
lstToRemove.append(objResult.id)
objResultSet = objResultSet.exclude(id__in=lstToRemove)
objPage = get_page(objResultSet, RESULTS_PER_PAGE, iPageNum)
objResultSet = objPage.object_list
for objResult in objResultSet:
do_something_with_extra_field(objResult.extra_field)
似乎我排除了我选择的 ID 的行去掉了我添加的额外字段,就好像这些结果直接来自数据库一样。有没有办法可以在保留这些额外字段的同时从 QuerySet 中删除某些项目?
【问题讨论】:
标签: python django pagination django-queryset