Par exemple, en utilisant mon modèle UserProfile:Comment puis-je mapper les noms de champs entre Django/PyAMF et Flex?
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)
...
Ainsi, je me retrouve avec un champ appelé "public". Ce n'est pas le cas dans ActionScript car c'est un mot-clé. C'est ennuyeux à changer car il est cuit dans plusieurs couches de fonctionnalités dans le paquetage django-profile. Donc, je suis obligé de le renommer sur le côté Flex:
[RemoteClass(alias="...")]
[Bindable]
public class UserProfile
{
public function UserProfile()
{
}
public var id:int;
public var blurb:String;
public var _public:Boolean;
...
Où, de chaque côté de la transaction, puis-je dire « public sur le terrain à distance se traduit sur le terrain _PUBLIC local »? J'ai joué un peu avec ClassAliases sur le côté PyAMF, mais il est devenu rapidement désordonné et il n'y a pas de documentation sur la façon de le faire correctement. Et la documentation sur le côté Flex semble indiquer qu'il y a un gestionnaire "traiter la demande entrante" que je peux remplacer, mais je pense qu'il se produit après avoir déjà rempli les champs dans l'objet com, les laissant ainsi tomber sur le sol, puisque le champ n'est pas là, et me laissant avec un tas de:
ReferenceError: Error #1056: Cannot create property
dans la trace Flex ...
génial, merci beaucoup, je suis sûr que cela devrait fonctionner, je vais l'essayer sous peu. Pour être juste, j'ai vu quelque chose à cet effet écrit quelque part, j'espérais juste qu'il y aurait quelque chose de plus explicite qui écrirait cela pour moi, de sorte que je n'aurais pas à continuer à le faire à l'avenir. Cependant, je suppose que je pourrais écrire l'emballage pour cela et l'afficher pour les autres à utiliser. :-) Pour répondre à votre demande, je dirais que donner ce que vous avez écrit ci-dessus comme un exemple dans le lien de la documentation que vous avez pointé aurait aidé - j'ai dû creuser ailleurs pour obtenir quelque chose de similaire. – eruciform
aussi, ce qui précède a la saveur d'être un peu un hack, ou en contournant le capot, pour moi. ça ne me donne pas confiance que ça ne va pas casser quelque chose ailleurs. alors qu'une api spécifique qui cartographie un champ à un autre le ferait. cependant, c'est juste le sentiment que je ressens de taper autant de __ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ __ (se sent comme tcp d'emballage à la main ou quelque chose :-) ce serait bien aussi s'il y avait plus d'une explication de l'interface classalias. Je ne suis pas vraiment sûr de ce qu'il fait, après avoir lu la documentation, ou comment l'utiliser. – eruciform
ClassAlias est censé être une classe interne à PyAMF utilisée pour traiter les métadonnées fournies par [classe] .__ amf__. La réponse ci-dessus est en effet un hack et j'ai créé un ticket pour fournir le service de synonymes décrit. Voir http://dev.pyamf.org/ticket/779 – njoyce