开发者

How does Django save decimal values?

开发者 https://www.devze.com 2022-12-26 06:58 出处:网络
What am I doing wrong? class MyModel(models.Model): name = models.CharField(max_length=100, verbose_name=_(\"Name\"), blank=False, null=False)

What am I doing wrong?

class MyModel(models.Model):
  name = models.CharField(max_length=100, verbose_name=_("Name"), blank=False, null=False)
  rating = models.DecimalField(max_digits=2, decimal_places=2, default=0)

I do something like that:

average = count/len(votes) 
mymodel.rating = average
mymodel.save()

count is the sum of all ratings of given MyModel and votes is an arr开发者_如何学Goay of those ratings, their division gives an average rating for MyModel (sorry if I described it incorrectly due to my poor English).

If i change previous to:

mymodel.name = 'anything'
mymodel.save()

Then 'anything' ends up in the database, but rating does not.

Why? am I using wrong field type?

Alan.


max_digits is a number of digits before and after the decimal point. With your settings it allows you to store numbers between 0.00 and 0.99. Is it right? I can not figure out the range of values for average variable.


Models do no validation. The types you use pretty much deal with things like syncdb etc. rather than actual formatting of data, that's what a Form is for.

0

精彩评论

暂无评论...
验证码 换一张
取 消