Создание подконтента на основе CSV-файла в родительском (plone dexterity)

Я создал два типа контента в Plone 4.3 с помощью Dexterity и создал продукт Plone в файловой системе.

Типы

  • Поставщик
  • пункт

Элементы могут существовать только внутри поставщика, и я могу вручную создавать новые элементы без

Я хотел бы иметь возможность создавать кучу элементов, если я загружу CSV-файл при создании поставщика. Каким-либо образом ловкость поддерживает это (триггер, настраиваемый вид...)?


person Peter B    schedule 16.04.2013    source источник


Ответы (1)


Вам придется обрабатывать это в пользовательском представлении. Для этого нет ранее существовавшего кода.

Для простых случаев просто прочитайте загруженный файл с модулем csv и используйте строки для создания элементов в контейнере Supplier:

from plone.dexterity.utils import createContentInContainer
import csv

reader = csv.reader(uploadedfile)

for row in reader:
    createContentInContainer(supplier, 'your.package.item', title=row[0], ...)

Для более сложных операций вы можете создать конвейер transmogrifier с transmogrify.dexterity для преобразования CSV-данных в ловкость. объекты, но это, вероятно, излишне здесь.

person Martijn Pieters    schedule 16.04.2013
comment
Как мне обрабатывать пост-триггер? Это означает, что я ввожу информацию о поставщике и нажимаю «Отправить» (например, пользовательские адаптеры в PloneFormGen)? - person Peter B; 16.04.2013
comment
@PeterB: с настраиваемым представлением. сказал бы. - person Martijn Pieters; 16.04.2013
comment
Теперь я нашел решение, основанное на вашем предложении, с пользовательским представлением. Спасибо за вашу помощь - person Peter B; 20.04.2013