Я пытаюсь импортировать данные в Orchard CMS. У меня есть собственный тип, состоящий из частей и полей, и я использую модуль ImportExport. Я экспортировал некоторые данные из Orchard, чтобы гарантировать правильность схемы XML, но при импорте единственным полем, которое, кажется, заполняется, является TitlePart Title. Я случайно создал GUID для идентификатора каждой записи. Orchard 1.4, ImportExport 1.4.Orchard CMS Импорт данных
Пример одного элемента данных:
<Orchard>
<Recipe>
<Name>Data Import</Name>
<Author>myaccount</Author>
</Recipe>
<Data>
<OurPropertiesDivision Id="/Identifier=94eff3237c714f98b021905c33d25ea9" Status="Published">
<LinkField.Link Text="This is a link" Url="http://stackoverflow.com" />
<MediaPickerField.ImageOne Url="~/test.jpg" Width="100" Height="100" />
<MediaPickerField.ImageTwo Url="~/test2.jpg" Width="100" Height="100" />
<MediaPickerField.ImageThree Url="~/test3.jpg" Width="100" Height="100" />
<TitlePart Title="Test Title" />
<CommonPart Owner="/User.UserName=myaccount" CreatedUtc="2012-04-04T23:03:39Z" PublishedUtc="2012-04-04T23:03:39Z" ModifiedUtc="2012-04-04T23:03:39Z" />
<IdentityPart Identifier="94eff3237c714f98b021905c33d25ea9" />
</OurPropertiesDivision>
</Data>
</Orchard>
Это приводит к следующему, если смотреть на импортируемой записи:
Содержимое списка:
Edit экрана:
Единственное поле, через которое осуществляется импорт, - это TitlePart. Как я могу сделать эту работу таким образом, чтобы я мог вставлять какие-либо поля или часть данных в данные? Я также хотел бы захватить Контейнер для Контейнерной части.
РЕДАКТИРОВАТЬ: Добавление содержимого тип метаданных
<?xml version="1.0"?>
<!--Exported from Orchard-->
-<Orchard>
-<Recipe>
<Name>Generated by Orchard.ImportExport</Name>
<Author>myaccount</Author>
</Recipe> -<Metadata>
-<Types>
-<OurPropertiesDivision DisplayName="Our Properties - Division" ContentTypeSettings.Draftable="True" ContentTypeSettings.Creatable="True">
<CommonPart DateEditorSettings.ShowDateEditor="False" OwnerEditorSettings.ShowOwnerEditor="False"/>
<TitlePart/>
<OurPropertiesDivision/>
<ContainablePart/>
<IdentityPart/>
</OurPropertiesDivision>
</Types> -<Parts>
<CommonPart ContentPartSettings.Attachable="True"/> <TitlePart ContentPartSettings.Attachable="True"/> -<OurPropertiesDivision ContentPartSettings.Attachable="True">
<ImageOne.MediaPickerField DisplayName="Image One" MediaPickerFieldSettings.Required="False" HtmlFieldSettings.FlavorDefault="html"/>
<ImageTwo.MediaPickerField DisplayName="Image Two" MediaPickerFieldSettings.Required="False" HtmlFieldSettings.FlavorDefault="html"/>
<ImageThree.MediaPickerField DisplayName="Image Three" MediaPickerFieldSettings.Required="False" HtmlFieldSettings.FlavorDefault="html"/>
<Content.HtmlField DisplayName="Content" HtmlFieldSettings.FlavorDefault="html"/>
<Link.LinkField DisplayName="Link" HtmlFieldSettings.FlavorDefault="html" LinkFieldSettings.LinkTextMode="Required" LinkFieldSettings.TargetMode="NewWindow" LinkFieldSettings.Required="True"/>
</OurPropertiesDivision> <ContainablePart ContentPartSettings.Attachable="True"/> <IdentityPart ContentPartSettings.Attachable="True"/>
</Parts>
</Metadata>
</Orchard>
Иногда возникают проблемы, при которых импорт помещает данные в db, но в разных версиях для элемента контента. Таким образом, последняя или опубликованная (не помню, какая) версия элемента контента (которая отображается в информационной панели) не имеет данных. Можете ли вы проверить db, чтобы убедиться, что это так? –
Я никогда раньше не касался базы данных Orchard, но я замечаю, что в таблице Orchard_Framework_ContentItemRecord импорт являются единственными строками, которые содержат данные внутри столбца Data, и у них есть все поля из импорта. Все остальные строки, похоже, хранят свои данные внутри таблицы Orchard_Framework_ContentItemVersionRecord. Является ли это ошибкой с функцией импорта, не учитывающей управление версиями, или какой-либо другой проблемой? – Carson
Возможно. Однажды я испытал подобную ошибку, но она была исправлена. Вы определяли этот элемент контента через панель мониторинга или через код (т. Е. В Migrations.cs)? Если вы сделали это через код, вы можете вставить код? Если вы не можете вставить метаданные для определения элемента контента? Вы можете получить это через экспорт, установите флажок Метаданные. –