我有db.commit()
的架构,该地方的类型可以包含三个值Place
。它们中的每一种都有一个单独的Schema,其中包含大量相关数据。
我的问题是;有没有办法可以将地点连接到模式中的正确对象?我知道我可以做一个City.find({...})来获取对象数据。
我确实添加了下面的代码,但它不能从管理部分的Place表单中编辑。是否有可能做到这一点?
region, country, city
我需要带有名称的place对象,然后需要存储在不同模式中的每种类型的数据。 keystone可以处理这个吗?
答案 0 :(得分:1)
您必须在集合之间创建关系:
在Place模型(Place.js)中,为每个链接的集合添加一个字段
Place.add({ title:{type:String,required:true}, region:{type:Types。 Relationship ,ref:' Region' }, 国家/地区:{类型:类型。关系,参考:'国家' }, 城市:{类型:类型。关系,参考:'城市' }, });
为每个链接集合创建一个模型:
Region.add({ name:{type:String,required:true}, 描述:{type:Types.Html,wysiwyg:true,身高:400} });
Country.add({ name:{type:String,required:true}, 描述:{type:Types.Html,wysiwyg:true,身高:400} });
City.add({ name:{type:String,required:true}, 描述:{type:Types.Html,wysiwyg:true,身高:400} });
要在管理员中输入选择,您必须在地方定义中添加一个向下钻取属性(仍在您的模型中)
var Place = new keystone.List(' Place',{ 地图:{name:' title' }, 下钻:'地区', 下钻:'国家', 深入研究:' City' });
不要忘记在keystone.js中添加路线以查看管理菜单项(请注意复数形式):
keystone.set(' nav',{ ... '地点':'地点', .... });