DurationFieldを使用した場合のpython manage.pyの移行を実行しているとき、私は、このエラーに遭遇しているとTimeFieldの両方が私に与える:TimeFieldとDurationField int型エラー
return int(round(value.total_seconds() * 1000000))
AttributeError: 'int' object has no attribute 'total_seconds'
私はこのサイト上だけのために、このエラーを見てきましたDjango 1.8。現在、私はDjango 1.10を使用しています。 私はこれらのsuggesionsを試してみました:
DurationField(default=timedelta()),
DurationField(),
DurationField(default=timedelta()),
DurationField(default=int(timedelta(minutes=20).total_seconds())).
私のモデルは、現在のようになります。私はうまく機能していないどのような値を知らない :Prakhar Trivediの者の質問への対応
class SomeModel(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
lunchnumber = models.IntegerField(null=True, blank=True)
role = models.PositiveSmallIntegerField(choices=ROLE_CHOICES,null=True, blank=True)
breaktime = models.DurationField(default=timedelta(minutes=45))
def to_python(self, value):
if value is None:
return value
if isinstance(value, datetime.timedelta):
return value
try:
parsed = parse_duration(value)
except ValueError:
pass
else:
if parsed is not None:
return parsed
。私は、djangoがそのデータベーステーブルに値を設定しようとしていることを前提としていました。 「int型のオブジェクトが無属性 'total_seconds'
アドレッシングを持っている:私はget_db_prep_value リターンint型(ラウンド(value.total_seconds()* 1000000)) はAttributeErrorに.......ので のこの印象でいますiklinacの回答:
私は、デフォルト= timedelta(分= 45)を追加しました。私はdatetimeからそれを輸入しているが、私は何かが欠けていると感じる。私はこれで非常に新しいですし、to_python関数を見たことがありません。何が欠けていますか?同じエラーがまだ出ますか?
** value valueは** value ** total_seconds(**)です。どの分野がURモデルの価値ですか? –
ooh @PrakharTrivediそれは私が尋ねる意味だった、それは私が他のものを頼むように思われる:) – e4c5
ちょっとトラビスあなたはあなたのmodels.pyの下で述べたようにインポートtimedeltaを持っていることをチェックしました。 Durationフィールドの後ろにある関数であるto_python関数についても、それを含める必要はありません。最後の部分については、datetimeにまだ問題がある場合は、parse_valueのコメントセクションで以下に述べるdjangoの時刻形式を使用することができます – iklinac