كيف يمكنني معرفة ما إذا كان الحقل قد غير القيمة في كائن في PLONE؟
-
21-09-2019 - |
سؤال
لدي نوع في المحتوى في بلون. لديها عدد من الحقول ، بما في ذلك حقل الملفات. عندما يقوم المستخدم بتحرير كائن من هذا النوع ، كيف يمكنني معرفة ما إذا كان تم تحميل ملف جديد؟
لهذه المسألة ، كيف يمكنني معرفة ما إذا كان قد تم تغيير أي من الحقول؟
أنا أستخدم المشتركين حاليًا لتوصيل IOBEDEDITEDEVENT للقيام ببعض بعد تغيير الكائن - هل يمكنني القيام بهذه الأشياء هنا؟
المحلول
نعم، IObjectEditedEvent
(فئة فرعية مباشرة من IObjectModifiedEvent
) ينبعث عندما يتم تغيير كائن محتوى النماذج الأصلية.
ومع ذلك ، فإن الحدث نفسه لن يخبرك إذا تم تحميل ملف جديد. ومع ذلك ، يجب أن يكون من الممكن الحصول على الطلب (السياق. إذا كان الأمر كذلك ، فقد قام المستخدم بتحميل ملف جديد لهذا الحقل و FileField
سيتم تحديثه.
نصائح أخرى
إليكم ما ربطته بـ iObjectededEvent:
باستخدام النموذج الافتراضي الذي تم إنشاؤه من الفئات الفرعية ATBLOB ، التنفيذ (IATBLOBFILE ، IATFILE ، IFILECONTENT)
def editObjectEvent(context, event):
status = context.REQUEST.form.get('file_delete')
if status in ("nochange", NONE):
print "Don't do anything, no change to file."
else:
print "Do something, the file has changed"
أود أن أعرف ما هي القيم الأخرى form['file_delete']
قد يمتلك. يبدو مفيدًا.