私は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()
{
}
}
}
Flexは私のregister
servicemethod(Aを呼び出す場合私はエラー'KeyError: first_name'
を取得します。その後、Flex VOにfirst_name
フィールドを追加すると、last_name
というエラーが発生します。等々。 このエラーは、私たちのflex VOがdjangoモデルと全く同じフィールドを持つ必要があることを意味します。単純なオブジェクトでは、これは問題ではありません。しかし、私たちはdjango Userオブジェクトのサブクラスを使用します。これは、投資家が例えばuser_ptr
フィールドを必要としていることを意味します。 注:servicemethodの前にすべてのエラーが表示されます。
もっと簡単な方法はありますか?理想的には、私たちが使用するフィールド(Djangoユーザーか、 User
から拡張されたdjango)に関係なく、Flex Investor VOを使用するのが理想的です。しかし、今はFlexオブジェクトをDjangoオブジェクトの後ろに正確にモデル化する必要があります。私はDjango Userオブジェクトがどのように見えるのか正確には分かりません(私はそうではありません)。
私は本当にいくつかの助けを使うことができます。ありがとうございます:-)