【问题标题】:How to add an extra message in json using tastypie?如何使用tastepie在json中添加额外的消息?
【发布时间】:2013-10-05 10:16:28
【问题描述】:

这是我的 app/api.py

from app.models import Person
from tastypie.resources import ModelResource, ALL, ALL_WITH_RELATIONS
    class PersonResource(ModelResource):
        class Meta:
            queryset = Person.objects.all()
            resource_name='person
            # filtering = { "email" : ALL,"dob":ALL,"mobile":ALL}
            filtering = {
                'email': ALL,
                'mobile': ALL,
                'dob': ALL,
                }

它在以下位置成功返回 json:/api/person/?format=json@email=abcd@example.com

但我想在 json 输出中添加一个字符串作为“状态”,当过滤成功时为 True,当数据库中没有与给定电子邮件对应的条目时为 False。 我该怎么做?

【问题讨论】:

    标签: python json tastypie


    【解决方案1】:

    最简单的方法是定义自己的alter_list_data_to_serialize 方法。该方法在返回 get_list 请求的响应之前调用,这是问题中的请求,并且应该返回将在响应中序列化的最终字典。

    假设您没有重组对象列表元数据(tastypie 的分页器将对象列表包装在字典中,其中objects 指向列表,total_count 保存对象总数等),您可以执行以下操作:

    def alter_list_data_to_serialize(self, request, data):
        data['status'] = data['total_count'] != 0
        return data
    

    否则,如果您使用自定义分页器并希望在所有资源中包含status 键,则可以修改Paginator.page() 方法以添加status 键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2016-12-28
      • 1970-01-01
      • 2013-12-28
      • 1970-01-01
      相关资源
      最近更新 更多