Django tastypie模型的格式属性

时间:2013-11-12 14:07:35

标签: django tastypie

简单的问题。当您将名称“format”作为TastyPie模型的属性时会发生什么?

当你的模型看起来像这样时,如何处理http://0.0.0.0:9000/api/v1/library_type/?format=json?的查询。

class LibraryType(models.Model):
    """The information about each library type."""
    format = models.IntegerField(choices=LIBRARYTYPE_CHOICES)
    equiv = models.IntegerField()
    name = models.CharField(max_length=96)
    prefix = models.CharField(max_length=96)
    description = models.CharField(max_length=255, db_column='remark')

你最终得到:

{
"error": "Invalid resource lookup data provided (mismatched type)."
}

显然这是有道理的,但你如何使用它?相应的资源定义。

class LibraryTypeResource(ModelResource):
    class Meta:
        queryset = LibraryType.objects.all()
        resource_name = 'library_type'
        list_allowed_methods = ['get',]
        detail_allowed_methods = ['get', ]
        filtering = {
            'id': ('exact', ),
            'name': ALL,
            'format': ALL,
            'prefix': ALL,
            'description': ALL,
            'site': ALL_WITH_RELATIONS,
        }

1 个答案:

答案 0 :(得分:0)

您是否只使用json格式?

如果是这样,你可以使用TASTYPIE_DEFAULT_FORMATS将其设置为json,不要再使用format = json。

如果没有,你可以使用tastypie的一个钩子来检索格式查询参数,并用它做你想做的任何事情。

我会更改查询参数的名称。