2009-03-10 10 views
1

Salut je suis en train de créer un lien avec flex à django PyAMFBonjour tout le monde PyAMF petit message d'erreur

Dans un premier temps j'ai essayé la base Bonjour tout le monde http://pyamf.org/wiki/DjangoHowto

Mais qui se traduit par un ErrorFault.

J'utilise django 1.0.2

amfgateway.py dans le dossier racine de mon projet (même niveau que les paramètres)

import pyamf 
from pyamf.remoting.gateway.django import DjangoGateway 
from django.contrib.auth.models import User 

pyamf.register_class(User, 'django.contrib.auth.models.User') 

def get_users(requet): 
    return User.objects.all() 

def echo(request, data): 
    return data 

services = { 
    'myservice.echo': echo, 
    'myservice.get_users': get_users, 
} 

edoGateway = DjangoGateway(services, expose_request=False) 

Dans urls.py

urlpatterns = patterns('', 

    # test pyamf 
    url(r'^gateway/', 'amfgateway.edoGateway'), 
    ... 
) 

Puis, quand je teste l'exemple avec le client pyamf

from pyamf.remoting.client import RemotingService 

gw = RemotingService('http://127.0.0.1:8000/gateway/') 
service = gw.getService('myservice') 

print service.echo('Hello World!') 

Je reçois

ErrorFault niveau = code d'erreur = 500 type = u'AttributeError » Description = u" Vous ne trouvez pas une vue pour le chemin [ '/ passerelle/myservice/echo'] , objet 'DjangoGateway' n'a pas d'attribut 'nam e' " Traceback: u" Vous ne trouvez pas une vue pour le chemin [ '/ passerelle/myservice/echo'], objet 'DjangoGateway' ha s aucun attribut ' nom '"

+0

Mon erreur que je mixais avec django amf:/en middlwares – coulix

Répondre

3

Je pense que vous devrez peut-être prendre le paramètre de requête de votre définition d'écho, au moins la méthode sur le site exemple PyAMF n'a pas ce paramètre dans la méthode

2

Bien que l'erreur est sans rapport, JMP est correct - vous avez expose_request=False sur la passerelle et la définition de service pour echo a le premier argument en tant qu'objet de requête Django Http.

Cela ne va pas travailler, mais PyAMF ne permet une certaine granularité ici, vous pouvez utiliser le décorateur expose_request, .: par exemple

from pyamf.remoting.gateway import expose_request 

@expose_request 
def echo(request, data): 
    return echo 
Questions connexes