Ran*_*ngh 9 python django tastypie
在我的Django模型中,我有10个字段,有3个字段是外键.在我从GET请求收到的JSON数据中,我得到的是所有字段,但不是外键.
我也做了这个,但我仍然没有在JSON数据中获取这些字段:
DataFields = MyData._meta.get_all_field_names()
class MyResource(ModelResource):
class Meta:
queryset = MyData.objects.all()
resource_name = 'Myres'
serializer = Serializer(formats=['json'])
filtering = dict(zip(DataFields, [ALL_WITH_RELATIONS for f in DataFields]))
Run Code Online (Sandbox Code Playgroud)
例如,我在模型中有字段city,但是我从它获得的JSON中没有该字段.
有什么方法可以在JSON中city:city__name自动获取吗?
如果我这样做,那么我就会得到这座城市,但是我可以在没有定义的情况下这样做:
def dehydrate(self, bundle):
bundle.data["city_name"] = bundle.obj.city__name
return bundle
Run Code Online (Sandbox Code Playgroud)
Bla*_*ake 13
您需要为外键字段创建相关资源并将其嵌入MyResource.如果你创建了嵌入式资源full=True,它会在获取时将其脱水MyResource,否则它会将其作为相关资源uri嵌入.
class RelatedResource(ModelResource):
class Meta:
...
class MyResource(ModelResource):
related = fields.ForeignKey(RelatedResource, full=True)
class Meta:
...
Run Code Online (Sandbox Code Playgroud)
然后,您可以?related__field=value在GET请求中过滤MyResource.
如果您只是想要模型返回的字段__unicode__,您可以尝试执行以下操作(而不是嵌入相关资源):
class MyResource(ModelResource):
city = fields.CharField(attribute="city")
class Meta:
...
Run Code Online (Sandbox Code Playgroud)
其中"city"是MyData模型上外键的字段名称.
| 归档时间: |
|
| 查看次数: |
5171 次 |
| 最近记录: |