属性错误:str对象-没有属性days.正在尝试迁移我的模型



有两个模型,我正试图覆盖保存函数(parent和Child(。模型看起来是这样的:

from django.db import models
from django.urls import reverse
from datetime import datetime, timedelta
class Program(models.Model):
air_date             = models.DateField(default="0000-00-00")
air_time             = models.TimeField(default="00:00:00")
service              = models.CharField(max_length=10)
block_time           = models.TimeField(default="00:00:00")
block_time_delta     = models.DurationField(default="00:00:00")
running_time         = models.TimeField(default="00:00:00")
running_time_delta   = models.DurationField(default="00:00:00")
remaining_time       = models.TimeField(default="00:00:00")
remaining_time_delta = models.DurationField(default="00:00:00")
title                = models.CharField(max_length=190)
locked_flag          = models.BooleanField(default=False)
deleted_flag         = models.BooleanField(default=False)
library              = models.CharField(null=True,max_length=190,blank=True)
mc                   = models.CharField(null=True,max_length=64)
producer             = models.CharField(null=True,max_length=64)
editor               = models.CharField(null=True,max_length=64)
remarks              = models.TextField(null=True,blank=True)
audit_time           = models.DateTimeField(null=True)
audit_user           = models.CharField(null=True,max_length=32)
def calculate_time(self):
total_run_time_delta = timedelta(minutes=0)
hold_remaining_delta = models.DurationField()
for segs in self.segments.all():
total_run_time_delta += segs.length_time_delta
self.running_time_delta = total_run_time_delta
self.running_time = f"{self.running_time_delta}"
self.remaining_time_delta = self.block_time_delta - total_run_time_delta
self.remaining_time = f"{abs(self.remaining_time_delta)}"
def save(self, *args, **kwargs):
self.calculate_time()
super().save(*args,**kwargs)
def __str__(self):
return f"{self.pk} : {self.title}"
def get_absolute_url(self):
return reverse('program_detail', args=[str(self.id)])
#return reverse('program-update', kwargs={'pk': self.pk})
class Segment(models.Model):
program_id = models.ForeignKey(Program,
on_delete=models.CASCADE,
related_name='segments',   #new link to Program
)
sequence_number = models.DecimalField(decimal_places=2,max_digits=6,default="0.00")
title           = models.CharField(max_length=190)
bridge_flag     = models.BooleanField(default=False)
length_time     = models.TimeField(null=True,default=None, blank=True)
length_time_delta = models.DurationField(default="00:00:00")
author          = models.CharField(max_length=64,null=True,default=None,blank=True)
voice           = models.CharField(max_length=64,null=True,default=None,blank=True)
library         = models.CharField(max_length=190,null=True,default=None,blank=True)
summary         = models.TextField()
audit_time      = models.DateTimeField(null=True)
audit_user      = models.CharField(null=True,max_length=32)
def save( self, *args, **kwargs):
program = Program.object.get(id=self.program_id)
super().save(*args,**kwargs)
program.save()
def __str__(self):
return self.author

在python manage.py进行迁移(顺便说一句(之后,我试着迁移并得到这个。。。

cmd$python manage.py迁移

(…一堆错误…(文件"/Users/tooyb/.local/share/virtualenvs/trackx_proj-eoegj60O/lib/python3.9/site packages/django/utils/duration.py";,第44行,持续时间_微秒return(24*60*60*delta.days+delta.seconds(*1000000+delta.mecondsAttributeError:"str"对象没有属性"days">

有人知道我为什么得到这个吗?

感谢

DateField/TimeField/DateTimeField的默认值应为datetime datetime or date or time的实例。我认为在某些情况下,您试图获得该字段的默认值,而从默认值中获得的是字符串,而不是日期时间对象

最新更新