How to expose a property (virtual field) on a Django Model as a field in a TastyPie ModelResource

我的梦境 提交于 2019-12-02 16:39:27
JamesO

You should be able to define it as a field try:

class UserProfileResource(ModelResource):
    fullname = fields.CharField(attribute='_get_full_name', readonly=True)
    class Meta:
        queryset = models.UserProfile.objects.all()
        authorization = DjangoAuthorization()
        fields = ['gender',]

Edit

You also have to include: set readonly=True on your CharField, or TastyPie will try to set its value on insertion or update.

A full example with dehydrate:

class UserResource(ModelResource):
    fullname = fields.CharField(readonly=True)

    class Meta:
        queryset = auth_models.User.objects.all()
        resource_name = 'user'

    def dehydrate_fullname(self, bundle):
        return u"{first_name} {last_name}".format(
            first_name=bundle.obj.first_name, last_name=bundle.obj.last_name)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!