Я создаю API, используя Django и TastyPie. Я пытаюсь зарегистрировать пользователя через ресурс. Я взял большую часть своего кода из этого вопроса, который имеет аналогичную цель:
Как создать или зарегистрировать пользователя с помощью django-tastypie API программно?
Моя проблема в том, что у меня возникает проблема при регистрации пользователя.
Код:
class RegisterUserResource(ModelResource):
class Meta:
allowed_methods = ['post']
object_class = VouchersUser
authentication = Authentication()
authorization = Authorization()
include_resource_uri = False
fields = ['username']
resource_name = 'register'
def obj_create(self, bundle, request=None, **kwargs):
try:
bundle = super(RegisterUserResource).obj_create(bundle, request, **kwargs)
bundle.obj.set_password(bundle.data.get('password'))
bundle.obj.save()
except IntegrityError:
raise BadRequest('User with this username already exists')
return bundle
Когда я отправляю POST (я делаю это программно) с параметрами имени пользователя и пароля, я получаю следующую ошибку:
{"error_message": "The format indicated 'multipart/form-data' had no available deserialization method. Please check your formats and content_types on your Serializer.", "traceback": "Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py", line 195, in wrapper
response = callback(request, *args, **kwargs)
File "/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py", line 402, in dispatch_list
return self.dispatch('list', request, **kwargs)
File "/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py", line 431, in dispatch
response = method(request, **kwargs)
File "/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py", line 1176, in post_list
deserialized = self.deserialize(request, request.raw_post_data, format=request.META.get('CONTENT_TYPE', 'application/json'))
File "/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/resources.py", line 351, in deserialize
deserialized = self._meta.serializer.deserialize(data, format=request.META.get('CONTENT_TYPE', 'application/json'))
File "/Library/Python/2.7/site-packages/django_tastypie-0.9.11-py2.7.egg/tastypie/serializers.py", line 192, in deserialize
raise UnsupportedFormat("The format indicated '%s' had no available deserialization method. Please check your formats and content_types on your Serializer." % format)
UnsupportedFormat: The format indicated 'multipart/form-data' had no available deserialization method. Please check your formats and content_types on your Serializer.
"}
Я могу сделать вывод, что есть проблема с сериализатором, но что и как я могу решить?
Спасибо
super(RegisterUserResource)
наsuper(RegisterUserResource, self)
. к вашему сведению. - person Kenny Winker   schedule 14.11.2012