Tôi đang cố gắng sắp xếp một bộ sưu tập các đối tượng. Tôi có xác định các phương pháp xem sau:Serialize queryset trong khung công tác còn lại Django
@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)
Nó nhận một tham số user_id
được sử dụng để xác định xem người dùng có quyền truy cập vào dữ liệu, sau đó nó được tập các đối tượng để được trả lại, nhưng nó doesn' t làm việc.
Nó đang cố gắng để serialize các thiết lập trực tiếp, thay vì đối tượng bên trong nó, vì vậy ném nó traceback này:
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'
Làm thế nào tôi có thể làm điều này đúng?
Cảm ơn.
Có, nó đã thực hiện thủ thuật! lần sau tôi sẽ đọc tài liệu kỹ càng hơn. Cảm ơn! – mario595