我用
my_classalias = pyamf.register_class(mymodel, mymodel._meta.object_name)
将我的 django 模型变成 AMF 序列化对象。
但问题是 mymodel 包含一个名为 的自动创建的 pk 字段id
,但 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 字段有一个未修补的错误,您可能必须手动编辑 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)
希望这可以帮助和我有同样问题的人。