Я использую 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()
{
}
}
}
Если Flex вызывает мой register
servicemethod (метод, который отправляет flex Investor в python), я получаю ошибку 'KeyError: first_name'
. Затем, когда мы добавляем поле first_name
в наш Flex VO, мы получаем ошибку last_name
. И так далее.
Эта ошибка означает, что у нашего flex VO должны быть те же поля, что и у наших моделей django. С простыми объектами это не будет проблемой. Но мы используем подклассы объекта User django. А это значит, что нашему Инвестору также необходимо, например, поле user_ptr
.
Примечание: я получаю все ошибки до обслуживания.
Есть ли более простой способ? В идеале у нас должен быть Flex Investor VO только с теми полями, которые мы используем (будь то от пользователя Django или нашего django Investor
, который простирается от User
). Но прямо сейчас объекты Flex должны быть смоделированы именно после наших объектов Django. Я даже не знаю точно, как выглядит объект Django User (чего я не должен).
Я действительно мог бы помочь. Большое спасибо заранее: -)