How does Django save decimal values?
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.
精彩评论