मैं एक मौजूदा ListField एम्बेडेड दस्तावेज़ को मौजूदा सूची फ़ील्ड एंबेडेड दस्तावेज़ दस्तावेज़ में जोड़ना चाहता हूं। दूसरे शब्दों में सूची में एक दस्तावेज़ से संबंधित सूची में एक नया दस्तावेज़ जोड़ना।Mongoengine: एक एम्बेडेड ListField दस्तावेज़ में एक नया दस्तावेज़ कैसे संलग्न करें?
मेरे मॉडल:
class Post(Document):
txt = StringField()
comments = ListField(EmbeddedDocumentField(Comment))
class Comment(EmbeddedDocument):
comment = StringField()
comment_id = ObjectIdField()
likes = ListField(EmbeddedDocumentField(Like))
class Like(EmbeddedDocument):
user = ReferenceField(User)
date = DateTimeField(default=datetime.utcnow,required=True)
मेरे कोड:: एक पोस्ट कई टिप्पणियां शामिल कर सकते हैं, प्रत्येक टिप्पणी कई पसंद हो सकता है (यह काम नहीं कर रहा 'संलग्न' कमांड dosen't मौजूद है, केवल 'सेट' मौजूद है)
def appendNewLike():
user = {..}
target = ObjectId(commentId)
newLike = Like(user=user)
Product.objects(comments__comment_id=target).comments.likes.append(newLike)
टिप्पणियाँ:
def appendNewLike():
user = {..}
target = ObjectId(commentId)
newLike = Like(user=user)
Product.objects(comments__comment_id=target).update(append_comments__S__likes=newLike)
आदर्श समाधान कुछ की तरह हो सकता है? सुझाव?
Product.objects(comments__comment_id=target).update(
push__comments__S__likes=newLike)
हालांकि, वहाँ बड़ा मुद्दों यहां हैं:
धन्यवाद $ पुश काम करता है! – rat
हैलो, पुश तब तक काम नहीं करता जब तक कि मैं क्लास इंस्टेंस के साथ रीलोड() को कॉल नहीं करता। उत्पाद = उत्पाद() product.objects (टिप्पणियां__comment_id = target) .update ( push__comments__S__likes = newLike) product.reload() – Shashank