我正在尝试序列化一组对象.我定义了以下视图方法:
@csrf_exempt def venue_list(request, user_id): """ Check that the user is requesting his own venues. """ profile = get_profile_for_user_if_match(request.user, user_id) if profile is None: return HttpResponse(status=status.HTTP_401_UNAUTHORIZED) venues = profile.venue_set.all() serializer = VenueSerializer(venues) return JSONResponse(serializer.data)
它接收一个user_id
参数,用于确定用户是否有权访问数据,然后获取要返回的对象集,但它不起作用.
它试图直接序列化集合,而不是它内部的对象,所以它抛出这个追溯:
Traceback: File "/Users/mariopersonal/Documents/dev/offers/project/offers/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 111. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Users/mariopersonal/Documents/dev/offers/project/offers/venv/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view 57. return view_func(*args, **kwargs) File "/Users/mariopersonal/Documents/dev/offers/project/offers/wsgi/openshift/business/restful/views/venueViews.py" in venue_list 22. return JSONResponse(serializer.data) File "/Users/mariopersonal/Documents/dev/offers/project/offers/venv/lib/python2.7/site-packages/rest_framework/serializers.py" in data 572. self._data = self.to_native(obj) File "/Users/mariopersonal/Documents/dev/offers/project/offers/venv/lib/python2.7/site-packages/rest_framework/serializers.py" in to_native 351. value = field.field_to_native(obj, field_name) File "/Users/mariopersonal/Documents/dev/offers/project/offers/venv/lib/python2.7/site-packages/rest_framework/fields.py" in field_to_native 336. return super(WritableField, self).field_to_native(obj, field_name) File "/Users/mariopersonal/Documents/dev/offers/project/offers/venv/lib/python2.7/site-packages/rest_framework/fields.py" in field_to_native 207. value = get_component(value, component) File "/Users/mariopersonal/Documents/dev/offers/project/offers/venv/lib/python2.7/site-packages/rest_framework/fields.py" in get_component 58. val = getattr(obj, attr_name) Exception Type: AttributeError at /business/api/venues/1 Exception Value: 'QuerySet' object has no attribute 'name'
我怎样才能做到这一点?
谢谢.