我可以在哪里放置自定义逻辑或我应该重载哪个函数来在tastypie中添加自定义逻辑。例如:想要以大写形式返回包含CustomObject
的{{1}},但在返回之前我想将其设为小写。
答案 0 :(得分:1)
如果您想提供类似的自定义内容,我建议您在dehydrate
期间执行此操作。查看documentation,示例几乎就是您要找的内容:
class MyResource(ModelResource):
# The ``title`` field is already added to the class by ``ModelResource``
# and populated off ``Note.title``. But we want allcaps titles...
class Meta:
queryset = Note.objects.all()
def dehydrate_title(self, bundle):
return bundle.data['title'].upper()
好吧,除了你当然在寻找.lower()
:)
class CustomObjectResource(ModelResource):
class Meta:
queryset = CustomObject.objects.all()
def dehydrate_title(self, bundle):
return bundle.data['name'].lower()
答案 1 :(得分:0)
你可以IMHO覆盖任何字段:
class CustomResource(ModelResource):
name = fields.CharField(
attribute='get_lowercased_name',
readonly=True
)
class Meta:
queryset = Custom.objects.all()
您需要在get_lowercased_name
模型类上定义Custom
方法。