我有2个型号如下
商人
class MerchantProfile(StateModel):
class Meta:
verbose_name = "Merchant Profile"
ordering = ('name',)
def __unicode__(self):
return u'%s' % (self.name,)
user = models.OneToOneField(UserProfile,related_name="merchant_profile")
payment_card = models.OneToOneField(PaymentCard,related_name="merchant_profile")
current_state = models.IntegerField('State',choices=STATE_CHOICES)
name = models.CharField('Merchant Name',max_length=64)
类别
class Category(models.Model):
merchant = models.ForeignKey(MerchantProfile,related_name="category")
name = models.CharField(max_length=30)
is_active=models.BooleanField()
我有资源文件如下
儿童资源
class MerchantCategoryResource(ModelResource):
api_key = fields.CharField(attribute='merchant__user__api_key',readonly=True)
class Meta:
#get username from headers and apply filter query
queryset = Category.objects.all()
resource_name = 'merchantcategory'
#excludes = ['id','email','password','is_active','is_staff','is_superuser']
detail_allowed_methods = ['get']
default_format = "application/json"
filtering = {
'user_id': ALL,'api_key':ALL
}
家长资源
class MerchantAllResource(ModelResource):
category = fields.ToManyField(MerchantCategoryResource,'category')
class Meta:
#get username from headers and apply filter query
queryset = MerchantProfile.objects.all()
resource_name = 'merchantinfo'
#excludes = ['id','api_key':ALL
}
输出是
{"Meta": {"limit": 20,"next": null,"offset": 0,"prevIoUs": null,"total_count": 1},"objects": [{"category": ["/api/ecp/merchantcategory/1/"],"create_time": "2012-08-17T12:56:55","current_state": 1,"id": 1,"modified_time": "2012-08-17T12:56:55","name": "ram","resource_uri": "/api/ecp/merchantinfo/1/","utcStateCreated": null,"utcStateDisabled": null,"utcStateEnabled": null,"utcStateUnsubscribed": null}]
我需要它如下
{"Meta": {"limit": 20,"objects": [{"category": ["id": 1,"is_active": true,"name": "test1","resource_uri": "/api/ecp/merchantcategory/1/"],"utcStateUnsubscribed": null}]
最佳答案
您必须在类别字段声明中指定full = True作为关键字arg:http://django-tastypie.readthedocs.org/en/latest/fields.html#id1