Хорошо, проблема в том, что Piston использует набор полей, определенных в модели User другим классом Handler, а не указанные здесь вложенные поля.
Другой пользователь ссылается на точно такую же проблему вгруппа обсуждения поршня здесь:
http://groups.google.com/group/django-piston/browse_thread/thread/295de704615ee9bd
Проблема, очевидно, вызвана ошибкой в коде сериализации Piston.В словах документации:
Используя модель в обработчике, Piston запоминает ваши поля / директивы exclude и использует их в других обработчиках, которые возвращают объекты этого типа (если не переопределены.)
Все это хорошо, за исключением того, что дело "(если не отменено.)", Похоже, не обрабатывается правильно.
I думаю , что небольшоемодификация в emitters.py может решить проблему (строки 160-193) ...
if handler:
fields = getattr(handler, 'fields')
if not fields or hasattr(handler, 'fields'):
...dostuff...
else:
get_fields = set(fields)
Что следует (возможно?) прочитать
if fields:
get_fields = set(fields)
else:
if handler:
fields = getattr(handler, 'fields')
...dostuff...
Если вы решите попробовать установить исправленияemitters.py, дайте мне знать, если это удастся - было бы хорошо, чтобы это исправили в django-поршне.
Приветствия!