keystoneJS与自我的关系

5 keystonejs

我想创建一个Category可以容纳另一个的模型category,但是参考字段存在问题,我可以将当​​前类别设置为自己

有关如何实现分层类别的任何建议?是否KeystoneJS有"不相等"的过滤器?另一方面,也许我可以为它自己设置默认参考字段,它就像一个根......

我目前的代码如下:


    var keystone = require('keystone'),
        Types = keystone.Field.Types;

    var PageCategory = keystone.List('PageCategory', {
        map: { name: 'name' },
        autokey : { from: 'name', path: 'key'}
    });

    PageCategory.add({
        name: { type: String, required: true, unique: true},
        image: { type: Types.CloudinaryImage, label: "Category Image"},
        description : { type: Types.Html, wysiwyg: true},
        parent: { type: Types.Relationship, ref: "PageCategory", label: "Parent category"}
    });

    PageCategory.relationship({ ref: "PageCategory", path: "parent"});

    PageCategory.register();

dou*_*oug 0

我认为您误解了Model.relationship()工作原理。

它有三个选项:

  • 路径,这是将保存值的“虚拟”字段名称
  • ref,这是我们参考的模型
  • refPath,这是引用模型中我们用来填充路径的字段

我认为与此相符的东西会对你有用

PageCategory.relationship({ ref: "PageCategory", path: "children", refPath: "parent"});
Run Code Online (Sandbox Code Playgroud)