[英]Remove a django field from PyAMF ClassAlias
我用
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)
希望這對與我有相同問題的人有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.