所以我在填充数据库后会出现此错误,但是在创建新数据时。如果我没有运行我编写的csv导入程序(只需从旧数据库中获取CSV文件,导入模型。创建模型的新实例,用数据填充并保存它们)然后添加新组(我的应用程序中的实体工作得很好。如果我运行导入器然后编辑中断并添加此错误,表单将显示为空并准备就绪:
我不确定是什么原因造成的。进口商很简单。可能是因为我错误地写了csv函数的parse_date?
Usage
provider.date_of_birth = parseDateTime(row[4])#parseDateTime(row[4]).strftime('%Y-%m-%d')
def parseDateTime(dt):
try:
col_date_object = datetime.strptime(dt, '%m/%d/%Y')
except ValueError:
col_date_object = datetime.now()
return col_date_object
我仔细检查了导入并浏览了数据库表,以确保我没有关闭行或列或其他东西。确实事情看起来不错
有问题的模型是:
@python_2_unicode_compatible
class Group(models.Model):
group_term = models.ForeignKey('GroupTerm', on_delete=models.SET_NULL, null=True, blank=True) #quesiton is can a group be termed many times?
group_name = models.CharField(max_length=50)
group_contact = models.CharField(max_length=50)
tin = models.CharField(max_length=50)
npi = models.CharField(max_length=50)
notes = models.TextField(max_length=255, null=True, blank=True)
start_date = models.DateField(auto_now=False, auto_now_add=False, null=True, blank=True)
end_date = models.DateField(auto_now=False, auto_now_add=False, null=True, blank=True)
change_date = models.DateField(auto_now=False, auto_now_add=False, null=True, blank=True)
change_text = models.TextField(max_length=255, null=True, blank=True)
term_comment = models.TextField(max_length=255, null=True, blank=True)
group_phone = models.CharField(max_length=50)
group_fax = models.CharField(max_length=50)
billing_address_line_one = models.CharField(max_length=50)
billing_address_line_two = models.CharField(max_length=50, null=True, blank=True)
billing_city = models.CharField(max_length=50)
billing_state = models.CharField(max_length=50)
billing_zip_code = models.CharField(max_length=50)
mailing_address_line_one = models.CharField(max_length=50)
mailing_address_line_two = models.CharField(max_length=50, null=True, blank=True)
mailing_city = models.CharField(max_length=50)
mailing_state = models.CharField(max_length=50)
mailing_zip_code = models.CharField(max_length=50)
default_location = models.BooleanField(default=True)
created_at = models.DateField(auto_now_add=True)
updated_at = models.DateField(auto_now=True)
class Meta:
ordering = ['-created_at']
def __str__(self):
return self.group_name
答案 0 :(得分:0)
我认为你必须首先处理字符串,然后你需要以日期格式存储它。这就是我尝试在这里做的原因。来自csv文件的Coz结果是一个字符串。
假设有一个类似下面的CSV文件。
year,month,day,hour,minute
2017,12,31,23,59
您可以解析csv并创建日期时间对象。
import csv
from datetime import date
with open('filename.csv') as fp:
reader = csv.reader(fp)
next(reader) # skip header
for row in reader:
row = [int(r) for r in row]
print(date(row[1], row[2], row[0]))
结果将是这样的。
12-31-2016