Удалить поле django из PyAMF ClassAlias - PullRequest
0 голосов
/ 21 марта 2012

Я использую

my_classalias = pyamf.register_class(mymodel, mymodel._meta.object_name)

, чтобы превратить мою модель django в сериализованные объекты AMF.

Но проблема в том, что mymodel содержит автоматически созданное поле pk, называемое id, но Flash /Flex-клиент не может принять такое поле, есть ли способ удалить его в PyAMF ClassAlias?

Заранее спасибо!

1 Ответ

0 голосов
/ 30 марта 2012

Вот мое собственное решение:

m = my_model
ka = pyamf.register_class(m, m._meta.object_name)
ka.exclude_attrs = ['field1', 'field2']

или, альтернативно, в вашем models.py

class my_model(models.Model):
    field1 = IntegerField()
    field2 = TextField()
    class __amf__:
        exclude = ('field1', )

Обратите внимание, что в PyAMF есть ошибка не исправлена ​​ для полей m2m, возможно, вам придется вручную отредактировать файл pyamf/adapters/_django_db_models_base.py, строка 168:

for name, relation in self.relations.iteritems():

    if name in self.exclude_attrs:
        continue
    if '_%s_cache' % name in obj.__dict__:
        attrs[name] = getattr(obj, name)

Надеюсь, это поможет тому, у кого такая же проблема со мной.

...