1

我有以下models.py

from django.db import models
import datetime

class Build(models.Model):
    build_name = models.CharField(max_length=60)
    description = models.CharField(max_length=140)
    parts = models.ManyToManyField('Part')

    def __unicode__(self):
        return self.build_name

class Part(models.Model):
    name = models.CharField(max_length=70)
    cost_usd = models.DecimalField(5, 2)
    type_of = models.CharField(max_length=5)
    supported_builds = models.ManyToManyField(Build)

    def __unicode__(self):
         return self.name

class OrderBuild(models.Model):
    parent = models.ForeignKey(Build)
    custom_parts = models.ManyToManyField(Part)

class PriceCache(models.Model):
    price = models.DecimalField(4, 2)
    time_fetched = models.DateTimeField(default=datetime.datetime.now())

我试过一一注释每一行并重新运行,似乎没有一行会导致这个错误。唯一一次成功同步是当我在模型类中注释掉所有内容时。

有谁知道是什么导致了这个错误,我该如何解决?

4

1 回答 1

4

检查线路

cost_usd = models.DecimalField(5, 2)
# ...
price = models.DecimalField(4, 2)

通过将它们修改为

cost_usd = models.DecimalField(max_digits=5, decimal_places=2)
# ...
price = models.DecimalField(max_digits=4, decimal_places=2)

模型字段的签名就像

field(verbose_name=None, name=None, ...)
DecimalField(verbose_name=None, name=None, max_digits=None, decimal_places=None, **kwargs)

因此,您的代码verbose_namename的字段错误地设置为整数。

于 2013-05-20T03:28:40.463 回答