意外的HTTP状态500响应

时间:2010-02-23 01:23:17

标签: django pyamf

我有一个简单的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 个答案:

答案 0 :(得分:1)

在网关上设置记录器,例如:

import logging

from pyamf.remoting.gateway.django import DjangoGateway

services = {}

gw = DjangoGateway(services, logger=logging)

这可以帮助您找到问题的根源。

答案 1 :(得分:0)

听起来像Django对象的pyAMF序列化程序有问题。

它适用于“model.object.filter”,但不适用于“.create”或“.get”。

使用“primitives”代替Django对象避免了这个问题:

 return { 'grupo': {"id": g.id},
             'membros' : None,
             'reponsavel' : None
        }