Hi there! So the problem is mentioned in the tittle of the issue.
Requests from terminal works fine, like http GET http://127.0.0.1:8000/api/v1/users/ and POST aswell,
but in browser instead of standard DRF page i get TypeError.
Environment:
Request Method: GET
Request URL: http://localhost:8000/api/v1/users/
Django Version: 3.2.7
Python Version: 3.8.10
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'users_app.apps.UsersAppConfig']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback (most recent call last):
File "/home/andy/programming/drf/users/env/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/home/andy/programming/drf/users/env/lib/python3.8/site-packages/django/core/handlers/base.py", line 204, in _get_response
response = response.render()
File "/home/andy/programming/drf/users/env/lib/python3.8/site-packages/django/template/response.py", line 105, in render
self.content = self.rendered_content
File "/home/andy/programming/drf/users/env/lib/python3.8/site-packages/rest_framework/response.py", line 70, in rendered_content
ret = renderer.render(self.data, accepted_media_type, context)
File "/home/andy/programming/drf/users/env/lib/python3.8/site-packages/rest_framework/renderers.py", line 724, in render
context = self.get_context(data, accepted_media_type, renderer_context)
File "/home/andy/programming/drf/users/env/lib/python3.8/site-packages/rest_framework/renderers.py", line 655, in get_context
raw_data_post_form = self.get_raw_data_form(data, view, 'POST', request)
File "/home/andy/programming/drf/users/env/lib/python3.8/site-packages/rest_framework/renderers.py", line 554, in get_raw_data_form
serializer = view.get_serializer()
File "/home/andy/programming/drf/users/env/lib/python3.8/site-packages/rest_framework/generics.py", line 110, in get_serializer
return serializer_class(*args, **kwargs)
Exception Type: TypeError at /api/v1/users/
Exception Value: 'NoneType' object is not callable
My views.py
from django.contrib.auth.models import User
from users_app.serializers import ReadOnlyUserSerializer, WriteOnlyUserSerializer
from drf_rw_serializers import generics
class UsersList(generics.ListCreateAPIView):
queryset = User.objects.all()
read_serializer_class = ReadOnlyUserSerializer
write_serializer_class = WriteOnlyUserSerializer
Serializers and other app code must be fine, since it works correctly with usual generic classes.
What I Did
Adding serializer_class = ReadOnlyUserSerializer line to my views solves the problem, but this solution seems weird to me.
I've read docs about installation and usage at https://drf-rw-serializers.readthedocs.io/en/latest/,
still can't figure out what am i missing.
Any help appreciated.
Description
Hi there! So the problem is mentioned in the tittle of the issue. Requests from terminal works fine, like
http GET http://127.0.0.1:8000/api/v1/users/
and POST aswell, but in browser instead of standard DRF page i get TypeError.My views.py
Serializers and other app code must be fine, since it works correctly with usual generic classes.
What I Did
Adding
serializer_class = ReadOnlyUserSerializer
line to my views solves the problem, but this solution seems weird to me. I've read docs about installation and usage at https://drf-rw-serializers.readthedocs.io/en/latest/, still can't figure out what am i missing. Any help appreciated.