كيف يمكنني معرفة ما إذا كان الحقل قد غير القيمة في كائن في PLONE؟

StackOverflow https://stackoverflow.com/questions/1968343

  •  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'] قد يمتلك. يبدو مفيدًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top