【问题标题】: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)
    

    希望这对和我有同样问题的人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-10
      • 2019-10-06
      • 2012-12-20
      • 2012-01-05
      • 2017-10-30
      • 2018-10-18
      • 2015-01-16
      • 2012-12-27
      相关资源
      最近更新 更多