我有两个模型
/**
* Page Model
* =============
*/
var Page = new keystone.List('Page');
Page.add({
name: { type: String, required: true },
pid: { type: String, required: true , default:"123" },
phone: { type: String },
keyword : {type: Types.Relationship, ref: 'Keyword' , many: true},
searchvol : {type: Types.Relationship, ref: 'Keyword' , many: true},
pageType: { type: Types.Select, options: [
{ value: 'message', label: 'Just leaving a message' },
{ value: 'question', label: 'I\'ve got a question' },
{ value: 'other', label: 'Something else...' }
] },
createdAt: { type: Date, default: Date.now }
});
Page.relationship({ path: 'keywords', ref: 'Keyword', refPath: 'keyword' });
Page.relationship({ path: 'keywords', ref: 'Keyword', refPath: 'searchvol' });
关键词模型
/**
* Keyword Model
* =============
*/
var Keyword = new keystone.List('Keyword');
Keyword.add({
//name: { type: String, required: true },
searchvol: { type: String },
keywordType: { type: Types.Select, options: [
{ value: 'message', label: 'brand' },
{ value: 'question', label: 'exact match' },
{ value: 'other', label: 'Something else...' }
] },
createdAt: { type: Date, default: Date.now }
});
我想在管理界面中包含搜索量,以便我可以使用它进行排序和过滤
然而它似乎只能包含名称字段,如果我删除该字段,它只显示id。
解决这个问题的唯一方法是构建一个处理我的“联接”的自定义crud界面,或者有一种方法可以使它与当前设置一起使用。
以下是文档的链接,我在其中找到了有关如何执行此操作的一些详细信息。 http://keystonejs.com/docs/database/#relationships
答案 0 :(得分:3)
@RaedMarji,Keystone总是使用name
字段来显示引用的关系。但是,在像您这样的情况下,如果您没有name
字段,则可以将现有字段映射为模型名称。
只需更新您的列表定义,如下所示:
var Keyword = new keystone.List('Keyword', {
map: { name: 'searchvol' }
});