Python 有条件地显示单个TastyPie资源中的所有或部分字段

Python 有条件地显示单个TastyPie资源中的所有或部分字段,python,django,django-models,tastypie,Python,Django,Django Models,Tastypie,我可以使用单个tastype资源并有条件地让它返回所有列或列的子集吗 我有一个员工数据库,我可以通过:/api/v1/employee/获取完整记录。但是,此表中的某些数据可能会随着时间的推移而变化(例如,某人转到另一个组,或其职务发生变化) 我们希望存储某些数据用于历史目的,并能够在将来查询指标——例如:“有多少“1级”员工参加了此测试?”。但是,如果Bob在参加测试后被提升到“2级”,那么如果我只是链接到员工模型,他将不再出现在这个查询中 我是否可以将我的tastype资源设置为有条件地返回

我可以使用单个tastype资源并有条件地让它返回所有列或列的子集吗

我有一个员工数据库,我可以通过:
/api/v1/employee/
获取完整记录。但是,此表中的某些数据可能会随着时间的推移而变化(例如,某人转到另一个组,或其职务发生变化)

我们希望存储某些数据用于历史目的,并能够在将来查询指标——例如:“有多少“1级”员工参加了此测试?”。但是,如果Bob在参加测试后被提升到“2级”,那么如果我只是链接到员工模型,他将不再出现在这个查询中

我是否可以将我的tastype资源设置为有条件地返回字段的子集,例如(下面是伪代码):

。。。然后通过
/api/v1/employee/?t=true
(或URL的其他添加内容)进行访问


或者仅仅创建一个完全不同的资源来引用以返回过滤字段集同样有效吗?

Meta.fields用于指定返回哪些数据库列,而不是数据记录。听起来您希望根据某些条件筛选出某些记录(即查询级别为1的所有人员):

*

然后只需将筛选器指定为查询参数: /api/v1/employee/?级别=1

  • 您可以创建不同的资源,从EmployeeResource子类化
  • 您可以将数据放入自定义脱水方法中:
  • a


    谢谢你,亨利。我已经更新了我的问题,使之更加清晰-我真的希望从单个资源返回一组不同的字段/列;或者澄清一下,创建第二个资源是我们要走的道路。
    class EmployeeResource(ModelResource):
        # bunch of fields
    
        class Meta:
            if t = true:
                fields = [ ... ]
    
    class EmployeeResource(ModelResource):
        class Meta:
            filtering = {
                "level": ('exact',),
            }
    
    class EmployeeResource(ModelResource):
        def dehydrate(self, bundle):
            t = bundle.request.GET.get('t')
            if t:
                bundle.data['custom_field'] = bundle.obj.custom_field
            return bundle
    
        class Meta:
            fields = common_fields