Я пытаюсь добавить скрытый тип поля под названием «admin», который имеет только идентификатор пользователя человека, создающего элемент модели. Это отлично работает локально, но по какой-то причине не работает на сервере. Вот что я сделал, может быть, это потому, что я изменил файл внутри keystone/lib?
/Models/Group.js
var keystone = require('keystone'),
Types = keystone.Field.Types;
/**
* Group Collection Model
* =============
*/
var Group = new keystone.List('Group');
Group.add({
name: { type: String, required: true, initial: true },
createdAt: { type: Date, default: Date.now },
groupId: { type: Types.Admin, required: true, initial: true, default: 'placeholder' }
});
Group.defaultColumns = 'name';
Group.register();
/node_modules/keystone/lib/fieldTypes Я добавил admin.js
/*!
* Module dependencies.
*/
var util = require('util'),
utils = require('keystone-utils'),
super_ = require('../field');
/**
* Text FieldType Constructor
* @extends Field
* @api public
*/
function admin(list, path, options) {
this._nativeType = String;
this._underscoreMethods = ['crop'];
admin.super_.call(this, list, path, options);
}
/*!
* Inherit from Field
*/
util.inherits(admin, super_);
/**
* Crops the string to the specifed length.
*
* @api public
*/
admin.prototype.crop = function(item, length, append, preserveWords) {
return utils.cropString(item.get(this.path), length, append, preserveWords);
};
/*!
* Export class
*/
exports = module.exports = admin;
/node_modules/keystone/lib/fieldTypes/index.js
добавил это:
exports.Admin = require('./admin');
/node_modules/keystone/templates/fields/admin
добавлен шаблон form.jade и initial.jade