title: Populating related keystone list
body: <p>So I have a Post model (built in of course).  Each Post has an Author.  Each Author has a Profile (I built this out separately deliberately as I am trying to learn.  I am having real problems populating the profile</p>
  
  <p>Here's what I have in my blog.js</p>
  
  <pre><code>    // Load the posts
  view.on('init', function(next) {
  
      var q = keystone.list('Post').paginate({
              page: req.query.page || 1,
              perPage: 10,
              maxPages: 10
          })
          .where('state', 'published')
          .sort('-publishedDate')
          .populate('categories')
          .populate('author');
  
      if (locals.data.category) {
          q.where('categories').in([locals.data.category]);
      }
  
      q.exec(function(err, results) {
          locals.data.posts = results;
  
          async.each(results.results, function(post,_next) {
              post.author.populate('profile', function(err, author) {
                  post.author = author;
                  locals.data.posts.results.push(post);
                  _next();
              });
          }, function(err) {
              next();
          })
  
      })
  });
  </code></pre>
  
  <p>Here is Profile</p>
  
  <pre><code>    var keystone = require('keystone'),
      Types = keystone.Field.Types;
  
  var Profile = new keystone.List('Profile', {
      map: { name: 'nickname' },
      autokey: { path: 'slug', from: 'nickname', unique: true }
  });
  
  Profile.add({
      nickname: { type: String, required: true, initial: true},
      age: { type: Types.Number, initial: false, required: false, index: true },
      location: { type: Types.Text, initial: false, required: false, index: true }
  });
  
  
  Profile.defaultColumns = 'nickname, age, location';
  Profile.register();
  </code></pre>
  
  <p>Here is user</p>
  
  <pre><code>    var keystone = require('keystone'),
      Types = keystone.Field.Types;
  
  /**
   * User Model
   * ==========
   */
  
  var User = new keystone.List('User');
  
  User.add({
      name: { type: Types.Name, required: true, index: true },
      email: { type: Types.Email, initial: true, required: true, index: true },
      password: { type: Types.Password, initial: true, required: true },
      profile: { type: Types.Relationship, ref: 'Profile', index: true },
  
      }, 'Permissions', {
      isAdmin: { type: Boolean, label: 'Can access Keystone', index: true }
  });
  
  // Provide access to Keystone
  User.schema.virtual('canAccessKeystone').get(function() {
      return this.isAdmin;
  });
  
  
  /**
   * Relationships
   */
  
  User.relationship({ ref: 'Post', path: 'posts', refPath: 'author' });
  
  
  
  /**
   * Registration
   */
  
  User.defaultColumns = 'name, email, isAdmin';
  User.register();
  </code></pre>
  
  <p>Here is Post</p>
  
  <pre><code>var keystone = require('keystone'),
      Types = keystone.Field.Types;
  
  /**
   * Post Model
   * ==========
   */
  
  var Post = new keystone.List('Post', {
      map: { name: 'title' },
      autokey: { path: 'slug', from: 'title', unique: true }
  });
  
  Post.add({
      title: { type: String, required: true },
      state: { type: Types.Select, options: 'draft, published, archived', default: 'draft', index: true },
      author: { type: Types.Relationship, ref: 'User', index: true },
      publishedDate: { type: Types.Date, index: true, dependsOn: { state: 'published' } },
      image: { type: Types.CloudinaryImage },
      content: {
          brief: { type: Types.Html, wysiwyg: true, height: 150 },
          extended: { type: Types.Html, wysiwyg: true, height: 400 }
      },
      categories: { type: Types.Relationship, ref: 'PostCategory', many: true }
  });
  
  Post.schema.virtual('content.full').get(function() {
      return this.content.extended || this.content.brief;
  });
  
  Post.defaultColumns = 'title, state|20%, author|20%, publishedDate|20%';
  Post.register();
  </code></pre>
  
  <p>Thanks in advance!</p>