keystone的更新脚本中的关系映射

时间:2018-04-18 23:30:15

标签: mongodb keystonejs

我试图在Keystone中进行某种关系的更新,但我无法让它发挥作用。我一直在阅读文档,似乎没关系,也在这里和GitHub中寻找问题,我找不到合适的答案。

任何人都可以帮助我吗?

这些是文件:

/**update/post.js */
exports.create = {
    Post: [
        { 'name.en': 'Postone', 'name.es': 'Artículo 1'},
        { 'name.en': 'Posttwo', 'name.es': 'Artículo 2'}
    ],
};


/** update/user.js */
exports.create = {
    User: [
        { 'name': 'First User', 'post': 'postone'}
    ]
}

模型文件是:

user.js的

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

var User = new keystone.List('User', {
    map: {
        name: 'name'
    },
});

User.add({
    name: {
        type: Types.Text,
        initial: true,
        required: true
    },
    post: {
        type: Types.Relationship,
        ref: 'Post',
        many: false
    }
});

User.defaultColumns = 'ID, name, post';
User.register();

Post.js

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

var Post = new keystone.List('Post', {
    map: {
        name: 'name.en'
    },
    autokey: {
        path: 'slug',
        from: 'name.en',
        unique: true
    },
});

Post.add({
    name: {
        en: {
            type: Types.Text,
            initial: true,
            required: true
        },
        es: {
            type: Types.Text
        }
    }
});

Post.relationship({
    path: 'users',
    ref: 'User',
    refPath: 'post'
});

Post.defaultColumns = 'name.en';
Post.register();

我收到此消息:

  

关系User.post包含无效的引用:" postone"。

提前致谢。

1 个答案:

答案 0 :(得分:0)

查看此修改是否有效:

/** update/user.js */
exports.create = {
    User: [
        { 'name': 'First User', 'post': 'Postone'} // replace postone with Postone
    ]
}