2015-12-12 4 views
3

Итак, я использую среду Django Rest для своих API и пытаюсь создать API для пользовательской модели auth. Вот мой Serializer классDjango Rest Framework Сериализатор возвращает UItextfield вместо фактического значения

class UserSerializer(serializers.ModelSerializer): 
     class Meta: 
      model = User 
      exclude = ('password',) 

Мой Посмотреть класс следующим образом

class UserApiDetailView(RetrieveAPIView): 
    queryset = User.objects.all() 
    serializer_class = UserSerializer 

и мой URL для того же выглядит следующим образом

url(r'^user/(?P<pk>[0-9]+)/$', views.UserApiDetailView.as_view()), 

Я получаю следующий вывод о вызове API

HTTP/1.0 200 OK 
Allow: GET, HEAD, OPTIONS 
Content-Type: application/json 
Date: Sat, 12 Dec 2015 18:54:04 GMT 
Server: WSGIServer/0.1 Python/2.7.10 
Vary: Accept, Cookie 
X-Frame-Options: SAMEORIGIN 
{ 
    "date_joined": "2015-10-30T06:25:17.400955Z", 
    "email": "<UITextField: 0x7fee18f6fa10", 
    "first_name": "", 
    "groups": [], 
    "id": 2, 
    "is_active": true, 
    "is_staff": false, 
    "is_superuser": false, 
    "last_login": null, 
    "last_name": "", 
    "user_permissions": [], 
    "username": "<UITextField: 0x7fee18f69ad0" 
} 

Вместо того, чтобы получать фактическое значение для имени пользователя и электронной почты, я получаю UITextField: 0x7fee18f69ad0.
Я что-то не хватает?
Кроме того, когда я использую ListAPIView, все работает отлично.

+1

Я не нашел ничего, что связано с 'UITextField' в Python. У вас есть это в любом месте вашего проекта? – soon

ответ

1

У меня есть теория. Вероятно, это происходит так:

  • Ваш API используется устройством iOS.
  • Приложение iOS отправляет объект UITextField, сериализуется как строку, а не его значение.
  • Когда вы просматриваете данные из вашего API, вы сбиты с толку данными, так как это похоже на строковое представление некоторого объекта Python.

Отладка Вопрос:

Проверьте username и password поле для конкретного пользователя в Django администратора или даже лучше в базе данных. Это поможет вам найти то, что действительно находится в базе данных.

+0

Не могу поверить, что я потратил столько времени на эту проблему. Ничего себе, я чувствую себя действительно немым на данный момент. Большое спасибо за вашу помощь. –

Смежные вопросы