django rest framework OPTIONS 500 -
i'm getting strange 500 error when issuing option request endpoint in api built django rest framework. get, post, put work fine , delete not allowed.
when issuing option request endpoint, following error , traceback:
traceback: file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response 111. response = wrapped_callback(request, *callback_args, **callback_kwargs) file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/django/views/decorators/csrf.py" in wrapped_view 57. return view_func(*args, **kwargs) file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/rest_framework/viewsets.py" in view 85. return self.dispatch(request, *args, **kwargs) file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/rest_framework/views.py" in dispatch 452. response = self.handle_exception(exc) file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/rest_framework/views.py" in dispatch 449. response = handler(request, *args, **kwargs) file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/rest_framework/views.py" in options 463. data = self.metadata_class().determine_metadata(request, self) file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/rest_framework/metadata.py" in determine_metadata 63. actions = self.determine_actions(request, view) file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/rest_framework/metadata.py" in determine_actions 89. actions[method] = self.get_serializer_info(serializer) file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/rest_framework/metadata.py" in get_serializer_info 106. field_name, field in serializer.fields.items() file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/rest_framework/metadata.py" in <listcomp> 106. field_name, field in serializer.fields.items() file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/rest_framework/metadata.py" in get_field_info 129. if hasattr(field, 'choices'): file "/users/awwester/sites/django/rlg/lib/python3.4/site-packages/rest_framework/relations.py" in choices 382. item in iterable exception type: typeerror @ /v1/powerchatsessions exception value: 'nonetype' object not iterable here model, serializer, , view:
# models.py - error happens when issuing options /powerchatsession class videoconversation(models.model): """ capture data video chat session note: inherited other classes besides powerchat """ created = models.datetimefield(auto_now_add=true) end = models.datetimefield(null=true, blank=true) users = models.manytomanyfield(user) class powerchat(videoconversation): """ power chat session """ start = models.datetimefield(null=true, blank=true) extended = models.booleanfield(default=false) active = models.booleanfield(default=false) # serializers.py class powerchatserializer(serializers.modelserializer): class meta: model = powerchat read_only_fields = ('users', 'start', 'extended',) # views.py class powerchatviewset(modelviewset): queryset = powerchat.objects.all() permission_classes = (powerchatpermission,) serializer_class = powerchatserializer resource_name = "powerchatsession" any ideas why happening? has users field, , seems bug django rest framework? it's checking if field has choices kwarg, doesn't, apparently drf thinks does?
i think issue addressed by:
https://github.com/tomchristie/django-rest-framework/issues/3115
the gist "at moment, self.action none in viewsets if options request."
this issue ceased me after upgraded djangorestframework-3.2.3
Comments
Post a Comment