django フィールドと property() 関数によって呼び出されるいくつかのプロパティを持つ django モデルがある場合、tastypie はこの仮想フィールドと対話できますか? または、tastypie の dehydrate、obj_create、obj_update 関数にロジックを含める必要がありますか?
モデル:
class A (models.Model):
x = models.CharField()
def get_y(self):
return self.x
def set_y(self, value):
self.y = value
y = property(get_y, set_y)
リソースは次のように短くできますか?
class AResource(ModelResource):
class Meta:
queryset = A.objects.all()
fields = ['id','x','y']
または、次のように長くする必要があります。
class AResource(ModelResource):
class Meta:
queryset = A.objects.all()
fields = ['id','x','y']
def dehydrate(self, bundle):
bundle.data['y'] = bundle.obj.x
return bundle
def obj_create(self, bundle, request=None, **kwargs):
bundle.obj.y = bundle.data['y']
bundle = super(AResource, self).obj_create(
bundle,
request,
)
return bundle
def obj_update(self, bundle, request=None, **kwargs):
bundle = super(AResource, self).obj_update(
bundle,
request,
)
bundle.obj.y = bundle.data['y']
return bundle
それが短い場合、x = 1、y = 2 を tasypie で渡すと、x はどのようになりますか?