私はFlexアプリケーションのバックエンドとしてPyamfを使用していますが、型付きの厳しいクラスのマッピングに関するいくつかの奇妙な問題があります。Pyamf register_classが厳密に型付けされたオブジェクトを期待通りにマッピングしていない
ここで私はここで
class MilestonActBase(RewardActBase):
def __unicode__(self):
return self.milestone.title
class Meta:
abstract = True
class SouvenirAct(MilestonActBase):
souvenir = models.ForeignKey(Souvenir)
group = models.ForeignKey(Group, blank=True, null=True)
def __unicode__(self):
return self.souvenir.title
を返すよモデルが私のviews.py内のオブジェクトを返す私の方法である:ここでは
try:
pyamf.register_class(Souvenir, 'com.rain.dennys.services.vo.Souvenir')
pyamf.register_class(SouvenirAct, 'com.rain.dennys.services.vo.SouvenirAct')
except ValueError:
print "Classes already registered"
@login_required
def get_souvenir_acts(http_request):
user = http_request.user
souvenirActs = SouvenirAct.objects.filter(user=user)
return souvenirActs
は私のAS3クラスです:
package com.rain.dennys.model
{
[RemoteClass (alias="com.rain.dennys.services.vo.SouvenirAct")]
[Bindable]
public class SouvenirAct extends RewardActBase
{
public var souvenir:Souvenir;
public function SouvenirAct()
{
}
}
}
私がサービスを呼び出すと、私はpythonとRでregister_classを行ったにしても、戻って匿名オブジェクトの配列を取得しますFlexのemoteClassだからそれは私にとって意味をなさない。私は何か間違っている必要がありますか?
私はいくつかのことを試してみました。ちょっと働いたことの一つは、Flexの配列に反復処理しSouvenirActがそうのようなオブジェクトなどの項目をキャストすることでした:
private function onResult(r:Array):void
{
for each(var o:Object in r)
{
var c:SouvenirAct = o as SouvenirAct;
}
}
私は、Flexで、私は彼らがあるべきように私SouvenirActオブジェクトが入力され得ることをんが、子供向けのおみやげ物はすべてnullです。だから私は返す結果でSouvenirActオブジェクトのキャストを強制的に、私は強く型付けされている子プロパティのnullを取得します。
誰もこれまでに見ましたか?クラスをマッピングする別の方法はありますか?
ジョナサンを助けてくれてありがとう!私は同じことを考えていた。しかし、私はそれがコンパイルされていることを確認しましたが、まだ作業ができません。 –