저는 PyAmf를 사용하여 Flex 어플리케이션과 통신하고 있습니다. 그러나 나는 오류가 계속 발생합니다.PyAMF/Django - Flex 클래스 매핑 오류
내 모델 :
from django.contrib.auth.models import User
class Talent(User):
street = models.CharField(max_length=100)
street_nr = models.CharField(max_length=100)
postal_code = models.PositiveIntegerField()
city = models.CharField(max_length=100)
description = models.CharField(max_length=100)
내 게이트웨이 파일 :
from pyamf.remoting.gateway.django import DjangoGateway
from addestino.bot.services import user
from addestino.bot.models import *
from django.contrib.auth.models import User
import pyamf
pyamf.register_class(User, 'django.contrib.auth.models.User')
pyamf.register_class(Talent, 'addestino.bot.models.Talent')
services = {
'user.register': user.register,
'user.login': user.login,
'user.logout': user.logout,
}
gateway = DjangoGateway(services, expose_request=True)
플렉스 인재 개체 :
package be.addestino.battleoftalents.model
{
[Bindable]
public class Investor
{
public static var ALIAS : String = 'be.addestino.battleoftalents.model.Investor';
public var id:Object;
public var street:String;
public var street_nr:String;
public var postal_code:uint;
public var city:String;
public var cash:Number;
public var date_created:Date;
public var date_modified:Date;
public var username:String;
public var password:String;
public var email:String;
public function Investor()
{
}
}
}
플렉스 내 register
servicemethod를 호출하면 (A 메서드는 파이썬 플렉스 투자자 보내), 난 'KeyError: first_name'
오류가 발생합니다. 그런 다음 first_name
필드를 Flex VO에 추가하면 last_name
오류가 발생합니다. 등등. 이 오류는 우리의 flex VO가 django 모델과 정확히 같은 필드를 가져야 함을 의미합니다. 간단한 개체를 사용하면 문제가되지 않습니다. 하지만 우리는 django User 객체의 하위 클래스를 사용합니다. 투자자가 예를 들어 user_ptr
필드를 필요로한다는 것을 의미합니다. 참고 : 서비스 방법 전에 모든 오류가 발생합니다.
더 쉬운 방법이 있습니까? 이상적으로는 우리가 사용하는 필드 (Django 사용자 또는 User
까지 확장되는 장고)에 관계없이 Flex Investor VO를 사용하는 것이 이상적입니다. 하지만 지금 당장 Flex 객체는 Django 객체를 모델링해야합니다. 나는 Django User 객체가 어떤 모습인지 정확히 알지 못한다.
정말 도움이 될 수 있습니다. 미리 감사드립니다 :-)