3
我已經設置django
項目與mongoengine
與django使用mongodb。我創建了2個模型,並且它們工作正常,但是當我爲一個模型使用信號偵聽器時它還偵聽另一個模型,那麼如何將信號綁定到它們的模型?Mongoengine信號收聽所有模型
這裏是我的模型,用戶代碼:
from mongoengine import *
from mongoengine import signals
from datetime import datetime
class User(Document):
uid = StringField(max_length=60, required=True)
platform = StringField(max_length=20, required=True)
index = StringField(max_length=80)
last_updated = DateTimeField(required=True, default=datetime.now())
meta = {
'collection': 'social_users'
}
def before_save(sender, document, **kwargs):
if document.platform and document.uid:
document.index = document.platform+'/'+document.uid
signals.pre_save.connect(before_save)
這裏的另一種模式Error
from mongoengine import *
from datetime import datetime
class Error(Document):
call = DictField(required=True)
response = DictField(required=True)
date = DateTimeField(default=datetime.now(), required=True)
meta = {
'collection': 'errors'
}
下面是我使用的測試代碼文件:
from src.social.models.error import Error
from src.social.models.user import User
error = Error.objects.first()
print(error.to_json())
但它不起作用,拋出以下錯誤:
AttributeError: 'Error' object has no attribute 'platform'
請幫我這個,謝謝。