簡體   English   中英

如何在Django / PyAMF和Flex之間映射字段名稱?

[英]How can I map field names between Django/PyAMF and Flex?

例如,使用我的UserProfile模型:

class UserProfile(models.Model):
  user      = models.ForeignKey( User, unique=True )
  blurb     = models.CharField( max_length=200, null=True, blank=True )
  public    = models.BooleanField( default=True )
  ...

因此,我最終得到了一個名為“ public”的字段。 因為它是關鍵字,所以這在ActionScript中不會生效。 更改很煩人,因為它在django-profile軟件包中包含了多層功能。 因此,我不得不在Flex端將其重命名:

[RemoteClass(alias="...")]
[Bindable]
public class UserProfile
{
    public function UserProfile()
    {
    }
    public var id:int;
    public var blurb:String;
    public var _public:Boolean;
    ...

在交易的哪一側,我可以在哪里聲明“遠程現場公共翻譯為本地現場_public”? 我在PyAMF方面搞砸了ClassAliases,但是很快就變得混亂了,並且沒有文檔很好地做到這一點。 而Flex方面的文檔似乎表明我可以覆蓋一個“處理傳入請求”處理程序,但是我認為它已經在com對象中填充了字段之后發生了,因此將它們放到地板上,因為適當的場不在那里,給我留下了一堆:

ReferenceError: Error #1056: Cannot create property

在Flex跟蹤中...

為了支持這一點,PyAMF需要在字段之間提供同義詞映射。 在此之前,您可以使用IExternalizable (盡管很笨拙):

class UserProfile(model.Model):
  user      = models.ForeignKey( User, unique=True )
  blurb     = models.CharField( max_length=200, null=True, blank=True )
  public    = models.BooleanField( default=True )

  class __amf__:
    external = True

  def __writeamf__(self, output):
    output.writeObject(self.id)
    output.writeObject(self.blurb)
    output.writeObject(self.public)

  def __readamf__(self, input):
    self.id = input.readObject()
    self.blurb = input.readObject()
    self.public = input.readObject()

帶有相應的Flex代碼:

[RemoteClass(alias="...")]
[Bindable]
public class UserProfile implements IExternalizable
{
  public function UserProfile()
  {
  }
  public var id:int;
  public var blurb:String;
  public var _public:Boolean;

  public function writeExternal(output:IDataOutput)
  {
    output.writeObject(id);
    output.writeObject(blurb);
    output.writeObject(_public);
  }

  public function readExternal(input:IDataInput)
  {
    id = input.readObject();
    blurb = input.readObject();
    _public = input.readObject();
  }
}

注意我還沒有測試上面的代碼,但原則上應該可以工作。

順便說一句,您能詳細介紹一下有關文檔的哪些內容嗎? 我想讓新用戶更清楚地了解這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM