현재 RESTful API를 디자인하기 위해 django-tastypie를 사용하고 있습니다. 나는이 문제에 직면하고있어 내 models.py에서django-tastypie : ModelResource를 리소스에 연결
# the RevisionObject retrieve commits info through pysvn
# This Resource is fully functionnal (RevisionObject code is not here)
class RevisionResource(Resource):
id = fields.CharField(attribute='revision')
description = fields.CharField(attribute='message')
author = fields.CharField(attribute='author')
changed_path = fields.ListField(attribute='changed_paths')
class Meta:
object_class = RevisionObject
allowed_methods = ['get']
resource_name = 'revision'
class RevisionToApplyResource(ModelResource):
#### here's the problem
revision = fields.ToManyField(RevisionResource, 'revision')
####
class Meta:
queryset = RevisionToApply.objects.all()
을 나는이 :
class RevisionToApply(models.Model):
patch = models.ForeignKey(PatchRequest)
revision = models.PositiveIntegerField()
applied = models.BooleanField(default = False)
내 문제가 (장고 용) RevisionToApply 모델 개정에 int를 사용한다는 것입니다.
RevisionToApplyResource의 개정 필드를 RevisionResource에 대한 포인터로 사용하려면 어떻게해야합니까? ToXxxxField가 django 모델과 연결하기위한 것이라면, ResourceObject를 삽입하는 완벽한 순간은 무엇입니까?
감사합니다.
class NoForeignKeyToOneField(ToOneField):
def dehydrate(self, bundle):
try:
obj_key = getattr(bundle.obj, self.attribute)
foreign_obj = self.to_class().obj_get(pk=obj_key)
except ObjectDoesNotExist:
foreign_obj= None
if not foreign_obj:
if not self.null:
raise ApiFieldError("The model '%r' has an empty attribute"
"'%s' and doesn't allow null value." % (bundle.obj,
self.attribute))
return None
self.fk_resource = self.get_related_resource(foreign_obj)
fk_bundle = Bundle(obj=foreign_obj, request=bundle.request)
return self.dehydrate_related(fk_bundle, self.fk_resource)
그것은 탈수 방법을 위해 작동합니다. 팁 주셔서 감사합니다. 나는 아직도 수화물 하나에 문제가있다. – piir