我的模型有DecimalField
:
points_player1 = models.DecimalField(max_digits=3, decimal_places=1, blank=True, null=True)
当我在模板中显示此字段时,它始终显示0.0
或1.0
等值。
但我想让这种行为更加用户友好:
1
,则会显示1
(现在为1.0)。1.5
,则应显示1.5
。0
,而不是0.0
。最好的方法是什么? DecimalField
对我的案例是正确的选择吗?
答案 0 :(得分:12)
您可以在模板中执行{{decimal_field|floatformat}}
,该模板将四舍五入并仅在必要时显示“.0”。
答案 1 :(得分:-1)
如果由于某种原因你不能/不想使用django模板,你可以修改模型保存方法,将其添加到模型的底部:
var expireSchema = new Schema({
expireAt: Date,
user_pk: { type: Schema.Types.ObjectId, ref: 'user_expire' }
});
expireSchema
.virtual('expiryTime')
.get(function() {
//allow for reaper running at 60 second intervals to cause expireAt.fromNow message to be 'in the past'
var expiryTime = moment(this.expireAt).fromNow();
if(String(expiryTime).indexOf("ago")){
expiryTime = "in a few seconds";
}
return expiryTime;
});
var expireModel = mongoose.model('UserExpire', expireSchema);
expireModel.collection.ensureIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } );
没试过,但它应该有用。