我有一个简单的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
知道为什么吗?
答案 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
}