我使用
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)
希望这能帮助到和我有同样问题的人。