I have the following tastypie resource:
class WorkloadResource(ModelResource):
# blueprints = ManyToManyField(Blueprint, 'blueprints')
blueprint = fields.OneToManyField('catalog.api.BlueprintResource',
attribute='blueprint',
related_name='workloads', full=True,
null=True)
def obj_create(self, bundle, request=None, **kwargs):
# return super(WorkloadResource, self).obj_create(bundle, request,
**kwargs)
return super(WorkloadResource, self).obj_create(bundle,
request=request, **kwargs)
def obj_update(self, bundle, request=None, **kwargs):
workload = Workload.objects.get(id=kwargs.get("pk"))
workload.description = bundle.data.get("description")
workload.name = bundle.data.get("name")
workload.image = bundle.data.get("image")
workload.flavor = bundle.data.get("flavor")
workload.save()
def obj_delete(self, bundle, **kwargs):
return super(WorkloadResource, self).obj_delete(bundle)
def determine_format(self, request):
return 'application/json'
class Meta:
queryset = Workload.objects.all()
resource_name = 'workload'
authorization=Authorization()
filtering = {
"blueprint": ('exact', ),
}
When I use curl to POST:
curl -i -H "Content-Type: application/json" -X POST -d
@wkl.json http://localhost:8000/api/workload/
where wkl.json is:
{ "name":"w 5", "description":"w 5 desc" }
I get this error:
AttributeError: 'Workload' object has no attribute 'blueprint'
I do need to have this attribute, so I can list all child workloads for a
given blueprint
like this: GET /api/workload/?blueprint=1
but I need to exclude this 'blueprint' attribute from participating in the
obj_create
What is the proper place and syntax to do this?
-Eugene
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/45055f65-f8c7-4cf0-b37e-084210e35b27%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.