2012-12-30 1 views
0

Если у меня есть модель django с полями django и некоторыми свойствами, называемыми функцией property(), может ли tastypie взаимодействовать с этими виртуальными полями? Или я должен включить логику в обезвоживание tastypie, obj_create, obj_update?TastyPie и свойства

Модель:

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?

ответ

0

Если вы хотите поля на ресурс, которые приходят из методов, вы можете включать в себя что-то вроде этого:

method_field = fields.CharField(attribute='my_method') 
+0

дублируется ли? http://stackoverflow.com/questions/9078035/how-to-expose-a-property-virtual-field-on-a-django-model-as-a-field-in-a-tasty –

 Смежные вопросы

  • Нет связанных вопросов^_^