从PyAMF ClassAlias中删除django字段



我使用

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

将我的django模型制作成AMF序列化对象。

但问题是mymodel包含一个名为id的自动创建的pk字段,但Flash/Flex客户端不能接受这样的字段,有办法在PyAMF ClassAlias中删除它吗?

提前感谢!

这是我自己的解决方案:

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)

希望这能帮助到和我有同样问题的人。

最新更新