0

我用

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

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

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

提前致谢!

4

1 回答 1

0

这是我自己的解决方案:

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 字段有一个未修补的错误,您可能必须手动编辑 file pyamf/adapters/_django_db_models_base.py, line 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)

希望这可以帮助和我有同样问题的人。

于 2012-03-30T07:44:30.623 回答