как отобразить изображение, загруженное в отправленную форму с помощью ploneformgen?

#python #plone #ploneformgen

#python #plone #ploneformgen

Вопрос:

Я использую ploneformgen. [отредактировано] Я использую пользовательский адаптер сценариев из ploneformgen для создания страницы с использованием информации из отправленных форм. Проблема в том, что страница, созданная при отправке, не отображает изображение. Я хотел бы создать страницу / документ с текстом И одним изображением. Как я могу это сделать?

Я пробовал этот код:

 #Creating the folder in zope instance. I gave the name 'conteudo' to it.
targetdir = context.conteudo

#Here asking for the form,  so we can access its contents
form = request.form

#Creating an unique ID
from DateTime import DateTime
uid= str(DateTime().millis())

# Creating a new Page (Document)
targetdir.invokeFactory('Document',id=uid, title= 'Minha Página', image= form['foto-de-perfil_file'],text='<b>Nome Completo:</b><br>' form
['nome-completo'] '<br><br>' '<b>Formação:</b><br>' form
['formacao'] '<br><br>' '<b>Áreas de Atuação:</b><br>' form['areas-de-    atuacao'] '<br><br>' '<b>Links:</b><br>' form['links'])

# Set the reference for our new Page
doc = targetdir.get('uid',targetdir)

# Reindexed the Page in the site
doc.reindexObject()
  

Он показывает только текст, но изображения там нет.

Я попытался использовать «setImage», но он показывает ошибку атрибута. Я попытался создать другой invokefactory, но вместо «Document» я вставил «Image», тогда он показывает только изображение.

Что я должен изменить в своем коде, чтобы отобразить как текст, так и изображение?

Заранее спасибо.

Комментарии:

1. Я думаю, вы имитировали здесь много деталей. Как выполняется этот coe? Глядя на ваш код, кажется , что у вас есть адаптер сценария для PloneFormGen, который создает Document тип контента, и в этом документе также есть нестандартное поле изображения (вы использовали collective.contentleadimage или что?). Пожалуйста, подтвердите эти данные или попробуйте go, предоставив нам больше информации о вашем env.

2. обновить-> отредактировано

3. На первый взгляд, я бы подумал, что вам понадобится документ, расширенный полем изображения. Для Plone-4 есть надстройка ‘collective’ contentleadimage’, с помощью которой вы можете расширить любой существующий тип содержимого с помощью поля изображения. В Plone-5 есть поведение, дающее вам такую возможность.

4. Привет, спасибо за ответ… и извините за мое невежество, но как я могу использовать его сейчас для отображения изображения в сгенерированном файле документа? (Я использую Plone-4, и я только что установил это дополнение, о котором вы упомянули… также уже пробовал некоторые вещи, но это не сработало). Спасибо!!

5. @C.E.Petersson Извините, что не заметил этот комментарий, всегда хорошо для @ me, поэтому я получаю уведомления по почте. Рад, что вы нашли решение, вы можете принять свой собственный ответ как тот, который вам помог.

Ответ №1:

В стандартном документе Plone тип содержимого не имеет никакого поля изображения.

Если вы используете Plone 4, используя старые ATContentTypes, вы должны установить и настроить collective.contentleadimage. На Plone 5 или, если вы используете содержимое, основанное на ловкости, вы должны добавить новое поле изображения в свою схему.

Комментарии:

1. Хорошо, спасибо за ответ… Я установил его сейчас, потому что я использую Plone 4. Но, извините за мое невежество (я новичок в plone- извините), как я могу отобразить изображение в документе сейчас? Я пробовал кое-что, но это не сработало. Спасибо.

2. @C.E.Petersson изображение из contentleadimage автоматически отображается в viewlet. Вы правильно настроили надстройку?

3. должен ли я настроить что-нибудь другое? Я сделал то же самое, что он всегда говорит делать … добавив некоторые вещи в build.cfg, а затем выполнив его. Но оно не показывает изображение.

4. Я также поддержал этот ответ, потому что в случае, если у вас есть пользовательский тип содержимого, это был бы лучший ответ.

Ответ №2:

Единственное, что мне понравилось, это вместо создания «страниц» я переключил его на «новости».