Taggit implemented.

This commit is contained in:
Isaac Bythewood
2012-09-28 04:42:13 +00:00
parent 7df00ebd48
commit 230a6e959f
7 changed files with 37 additions and 1 deletions

View File

@@ -9,6 +9,8 @@ from pinry.pins.models import Pin
class PinResource(ModelResource): # pylint: disable-msg=R0904
tags = fields.ListField()
class Meta:
queryset = Pin.objects.all()
resource_name = 'pin'
@@ -17,6 +19,24 @@ class PinResource(ModelResource): # pylint: disable-msg=R0904
'published': ['gt'],
}
def build_filters(self, filters=None):
if filters is None:
filters = {}
orm_filters = super(PinResource, self).build_filters(filters)
if 'tag' in filters:
orm_filters['tags__name__in'] = filters['tag'].split(',')
return orm_filters
def dehydrate_tags(self, bundle):
return map(str, bundle.obj.tags.all())
def save_m2m(self, bundle):
tags = bundle.data.get('tags', [])
bundle.obj.tags.set(*tags)
return super(PinResource, self).save_m2m(bundle)
class UserResource(ModelResource):
class Meta: