2010-02-23 106 views
1

我有一個簡單的python方法,應該由Django/pyAMF返回,但它會返回HTTP狀態500,而不是通過該方法沒有錯誤和Grupo對象創建):意外的HTTP狀態500響應

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) 

這應該幫助你找到問題的根源。

+0

雖然它讓我看到錯誤消息(類對象不能被序列化),這是沒有任何因爲我在其他調用中成功地使用了相同的類。 – Samuel

0

聽起來像DjAMo對象的pyAMF序列化程序的問題。

它適用於「model.object.filter」,但不適用於「.create」或「.get」。使用而不是Django的對象「原始人」

避免這個問題:

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

及時:記錄技巧保存了我的一天:) ...從日誌到源代碼到變通方法,也許到一個補丁(某天;) – Samuel

+0

Django的哪個版本用於?我知道PyAMF的某些更新需要支持(即將推出的)1.2,請參閱http://dev.pyamf.org/ticket/759瞭解更多信息。 – njoyce

相關問題