【问题标题】:Remove a django field from PyAMF ClassAlias从 PyAMF ClassAlias 中删除 django 字段
【发布时间】:2012-04-05 13:46:51
【问题描述】:
我用
my_classalias = pyamf.register_class(mymodel, mymodel._meta.object_name)
将我的 django 模型变成 AMF 序列化对象。
但问题是 mymodel 包含一个名为 id 的自动创建的 pk 字段,但 Flash/Flex 客户端无法接受此类字段,有没有办法在 PyAMF ClassAlias 中删除它?
提前致谢!
【问题讨论】:
标签:
django
model
field
amf
pyamf
【解决方案1】:
这是我自己的解决方案:
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 中有一个 unpatched bug 用于 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)
希望这对和我有同样问题的人有所帮助。