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())

各行に 1 つずつコメントを付けて再実行しようとしましたが、このバグの原因と思われる行は 1 行もありません。同期に成功したのは、モデル クラスのすべてをコメント アウトしたときだけでした。

このバグの原因と修正方法を知っている人はいますか?

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 に答える