【发布时间】:2012-04-05 14:39:53
【问题描述】:
我正在尝试将数据导入 Orchard CMS。我有一个自定义类型,由部分和字段组成,并且我正在使用 ImportExport 模块。我已经从 Orchard 导出了一些数据以确保 XML 架构正确,但是在导入时,似乎唯一填充的字段是 TitlePart 标题。我为每条记录的标识符随机生成了一个 GUID。果园 1.4,导入导出 1.4。
一项数据示例:
<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>
查看导入的条目时会出现以下结果:
内容列表:
编辑屏幕:
通过导入的唯一字段是 TitlePart。如何以一种可以批量插入任何类型的字段或数据部分的方式进行这项工作?我还想为 Containable 部分捕获 Container。
编辑:添加内容类型元数据
<?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>
【问题讨论】:
-
有时会出现导入将数据放入数据库的问题,但内容项的版本不同。因此,最新或已发布(不记得是哪个)版本的内容项(显示在仪表板中)没有数据。你能检查一下数据库看看是不是这样吗?
-
我以前从未直接接触过 Orchard 数据库,但我注意到在 Orchard_Framework_ContentItemRecord 表中,导入是 Data 列中唯一包含数据的行,并且它们具有所有字段从进口。所有其他行似乎都将其数据存储在 Orchard_Framework_ContentItemVersionRecord 表中。这是导入功能未考虑版本控制的错误,还是其他问题?
-
可能是这样。我以前遇到过类似的错误,但已修复。您是通过仪表板还是通过代码(即在 Migrations.cs 中)定义此内容项?如果你是通过代码完成的,你可以粘贴代码吗?如果不能,您可以粘贴内容项定义的元数据吗?您可以通过导出获得此信息,选中元数据复选框。
-
@GiscardBiamby 我已经从仪表板中创建的内容类型添加了元数据。由于时间限制,我手动将数据直接导入 SQL Server,但最好找出导致此问题的原因。
-
我不知道怎么回事。希望其他人可以回答这个问题。您可能还想在 orchard.codeplex.com 网站上提交错误。
标签: asp.net-mvc-3 import orchardcms