Here is the error message: Environment:
Request Method: POST Request URL: http://127.0.0.1:8000/drone-categories/ Django Version: 1.11.12 Python Version: 2.7.12 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'drones.apps.DronesConfig', 'rest_framework'] 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: File "C:\Python27\lib\site-packages\django\core\handlers\exception.py" in inner 41. response = get_response(request) File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request) File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\Python27\lib\site-packages\django\views\decorators\csrf.py" in wrapped_view 58. return view_func(*args, **kwargs) File "C:\Python27\lib\site-packages\django\views\generic\base.py" in view 68. return self.dispatch(request, *args, **kwargs) File "C:\Python27\lib\site-packages\rest_framework\views.py" in dispatch 483. response = self.handle_exception(exc) File "C:\Python27\lib\site-packages\rest_framework\views.py" in handle_exception 443. self.raise_uncaught_exception(exc) File "C:\Python27\lib\site-packages\rest_framework\views.py" in dispatch 480. response = handler(request, *args, **kwargs) File "C:\Python27\lib\site-packages\rest_framework\generics.py" in post 244. return self.create(request, *args, **kwargs) File "C:\Python27\lib\site-packages\rest_framework\mixins.py" in create 20. serializer.is_valid(raise_exception=True) File "C:\Python27\lib\site-packages\rest_framework\serializers.py" in is_valid 236. self._validated_data = self.run_validation(self.initial_data) File "C:\Python27\lib\site-packages\rest_framework\serializers.py" in run_validation 436. self.run_validators(value) File "C:\Python27\lib\site-packages\rest_framework\serializers.py" in run_validators 466. super(Serializer, self).run_validators(to_validate) File "C:\Python27\lib\site-packages\rest_framework\fields.py" in run_validators 533. for validator in self.validators: File "C:\Python27\lib\site-packages\rest_framework\fields.py" in validators 392. self._validators = self.get_validators() File "C:\Python27\lib\site-packages\rest_framework\serializers.py" in get_validators 1478. return validators[:] Exception Type: TypeError at /drone-categories/ Exception Value: 'type' object has no attribute '__getitem__' my serializer: class MakeLower(object): def __init__(self, base): self.base = base def __call__(self, value): if not value.islower(): value.lower() class DroneCategorySerializer(serializers.HyperlinkedModelSerializer): drones = serializers.HyperlinkedIdentityField( many = True, read_only = True, view_name = 'drone-detail' ) class Meta: model = models.DroneCategory validators = MakeLower fields = ( 'url', 'pk', 'name', 'drones' ) my model: class DroneCategory(models.Model): name = models.CharField(max_length=250, unique=True) class Meta: ordering = ('name',) def __str__(self): return self.name On Thursday, 10 May 2018 17:26:33 UTC+5:30, Carlton Gibson wrote: > > Hi Manoj. > > Check out the field validation docs: > http://www.django-rest-framework.org/api-guide/serializers/#field-level-validation > > > Implement a `validate_name` method to transform using `value.lower()`. (or > similar.) > > Kind Regards, > > Carlton > > -- You received this message because you are subscribed to the Google Groups "Django REST framework" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-rest-framework+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.