1

我有一个简单的 python 方法,应该由 Django/pyAMF 返回,但它返回的是 HTTP 状态 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

知道为什么吗?

4

2 回答 2

1

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

import logging

from pyamf.remoting.gateway.django import DjangoGateway

services = {}

gw = DjangoGateway(services, logger=logging)

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

于 2010-02-23T01:53:14.880 回答
0

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

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

使用“primitives”而不是 Django 对象可以避免这个问题:

 return { 'grupo': {"id": g.id},
             'membros' : None,
             'reponsavel' : None
        }
于 2010-02-24T02:55:03.120 回答