结合简单的架构错误

时间:2016-02-04 03:50:45

标签: meteor simple-schema

我正在尝试使用简单架构组合字段。它适用于Schema.UserProfile,但它不适用于Schema.accountStatus

如果我在创建新帐户时尝试填充该字段,则会出错。对于为什么会有任何想法,真的会有所帮助,谢谢?

路径:schemas.js

Schema = {};

Schema.accountStatus = new SimpleSchema({
    isUserAccountActive: {
        type: Boolean,
        optional: true
    },
    startDate: {
        type: Date,
        optional: true
    },
    endDate: {
        type: Date,
        optional: true
    }
});

Schema.UserProfile = new SimpleSchema({
    firstName: {
        type: String,
        optional: false
    },
    lastName: {
        type: String,
        optional: true
    },
});

Schema.User = new SimpleSchema({
    profile: {
        type: Schema.UserProfile,
        optional: true
    },
    // Make sure this services field is in your schema if you're using any of the accounts packages
    services: {
        type: Object,
        optional: true,
        blackbox: true
    },
    accountStatus: {
        type: Schema.accountStatus,
        optional: true

    },
    // In order to avoid an 'Exception in setInterval callback' from Meteor
    heartbeat: {
        type: Date,
        optional: true
    }
});

Meteor.users.attachSchema(Schema.User);

路径:startup.js

Meteor.startup(function () {

  console.log('Running server startup code...');

  Accounts.onCreateUser(function (options, user) {
    if (options.profile && options.profile.roles) {
      //include the user profile
      Roles.setRolesOnUserObj(user, options.profile.roles);
    }

    if (options.profile) {
      // include the user profile
      user.profile = options.profile;
    }

    // other user object changes...
    // ...
    user.isUserAccountActive = false;


    return user;
  });

});

1 个答案:

答案 0 :(得分:2)

我现在看到:accountStatususer.isUserAccountActive = false; 的子键。变化:

user.accountStatus = { isUserAccountActive: false };

class Location(models.Model): 
    location_id=models.AutoField(primary_key=True)
    location=models.CharField(max_length=30, blank=False, null=False)
    phone_code=models.CharField(max_length=10,blank=True, null=True)
    def __str__(self):
       return self.location

class Host(models.Model): 
    host_id=models.AutoField(primary_key=True)
    location=models.ForeignKey('Location', on_delete=models.CASCADE)
    host=models.CharField(max_length=30, blank=False, null=False)
    def __str__(self):
    return "%s. %s" % (self.location.location, self.host)

不清楚为什么会产生服务器错误,可能是因为你在服务器端进行此更新。