我正在使用django-eztables
app(0.3.2),并且我试图在字段中使用某些模型的属性:
模特的课程:
class AModel(models.Model):
...
@property
def a_property(self):
return 'something'
eztables'视图:
class AView(DatatablesView):
model = AModel
fields = [
...,
"a_property",
]
根据我所看到的,这不起作用,因为eztables'中的方法process_dt_response
。 DatatablesView
类在查询集上使用.values(*self.get_db_fields())
。
执行此操作的唯一方法是,我发现在我的AView
课程中覆盖了所提到的方法,只删除了提到的values
来电:
def process_dt_response(self, data):
self.form = DatatablesForm(data)
print self.form
if self.form.is_valid():
self.object_list = self.get_queryset()
return self.render_to_response(self.form)
else:
return HttpResponseBadRequest()
这样可以(会有其他一些不良副作用)吗?还有其他更好的方法吗?
答案 0 :(得分:0)
对我有用的一个策略是在将数据返回给客户端之前附加其他数据。 render_to_response()调用get_row()来获取最终数组(对于每个记录)。覆盖get_row()并附加自定义数据。这里的一个假设是,get_row()中可以获得获取/生成其他自定义数据所需的所有数据。