PyAmfを使用して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)
Flex Talentオブジェクト:
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
Flexが私のservicemethod(flex InvestorをPythonに送信するメソッド)を呼び出すと、エラーが発生します'KeyError: first_name'
。first_name
次に、Flex VOにフィールドを追加すると、last_name
エラーが発生します。等々。このエラーは、flexVOがdjangoモデルとまったく同じフィールドを持っている必要があることを意味します。単純なオブジェクトの場合、これは問題にはなりません。ただし、djangoUserオブジェクトのサブクラスを使用します。つまり、user_ptr
たとえば、投資家にもフィールドが必要です。注:servicemethodの前にすべてのエラーが発生します。
もっと簡単な方法はありますか?理想的には、使用するフィールドのみを含むFlex Investor VOがあります(Djangoユーザーからのものか、からInvestor
拡張するdjangoからのものかは関係ありませんUser
)。ただし、現時点では、FlexオブジェクトはDjangoオブジェクトを正確にモデル化する必要があります。Django Userオブジェクトがどのように見えるかさえ正確にはわかりません(私はそうすべきではありません)。
私は本当にいくつかの助けを使うことができました。よろしくお願いします:-)