簡體   English   中英

從PyAMF ClassAlias刪除Django字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM