Неожиданный HTTP-статус 500 ответ
У меня есть простой метод python, который должен быть возвращен Django/pyAMF, но он возвращает HTTP Status 500 вместо этого (хотя я передаю метод без ошибок и объект Grupo создается):
def newGrupo(request, igID):
return { 'grupo': Grupo.objects.create(ig = Ig.objects.get(pk=igID)),
'membros' : None,
'reponsavel' : None
}
Самое странное, что другой вызов, который делает почти то же самое (он на самом деле возвращает список предыдущих), возвращает ok:
def listGrupos(request, igID):
result = []
for grupo in Grupo.objects.filter(ig=igID):
grp = {}
grp['grupo'] = grupo
grp['membros'] = grupo.membro_set.filter(ativo=True)
grp['responsavel'] = grupo.responsavel
result.append(grp)
return result
Есть идеи почему?
2 ответа
Установите регистратор на шлюз, например:
import logging
from pyamf.remoting.gateway.django import DjangoGateway
services = {}
gw = DjangoGateway(services, logger=logging)
Это должно помочь вам добраться до корня проблемы.
Похоже, проблема с сериализатором pyAMF для объектов Django.
Он работает с "model.object.filter", но не с ".create" или ".get".
использование "примитивов" вместо объектов Django позволяет избежать проблемы:
return { 'grupo': {"id": g.id},
'membros' : None,
'reponsavel' : None
}