##models.py
class Questions:
question_text = models.CharField(max_length=200)
pub_date = models.DateField(null=True, blank=True, default='')
slug = `models.CharField(max_length=10, unique=True, default="question")`
def __str__(self):
return self.question_text
#views.py
def import_sheet(request):
if request.method == "POST":
form = UploadFileForm(request.POST,
request.FILES)
if form.is_valid():
request.FILES['file'].save_to_database(
name_columns_by_row=2,
model=Question,
mapdict=['question_text', 'pub_date', 'slug'])
return HttpResponse("OK")
else:
return HttpResponseBadRequest()
else:
form = UploadFileForm()
return render(request, 'perfimport/import.html', {'form': form})
终端输出
Internal Server Error: /import/
Traceback (most recent call last):
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangocorehandlersexception.py", l
ine 34, in inner
response = get_response(request)
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangocorehandlersbase.py", line 1
15, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangocorehandlersbase.py", line 1
13, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:UsersDesktopPerfImportimporterperfimportviews.py", line 20, in import_sheet
mapdict=['question_text', 'pub_date', 'slug'])
File "C:UsersAppDataLocalContinuumanaconda3libsite-packagesdjango_excel__init__.py", line
49, in save_to_database
pe.save_as(**params)
File "C:UsersAppDataLocalContinuumanaconda3libsite-packagespyexcelcore.py", line 82, in s
ave_as
return sources.save_sheet(sheet, **dest_keywords)
File "C:UsersAppDataLocalContinuumanaconda3libsite-packagespyexcelinternalcore.py", line
48, in save_sheet
return _save_any(a_source, sheet)
File "C:UsersAppDataLocalContinuumanaconda3libsite-packagespyexcelinternalcore.py", line
60, in _save_any
a_source.write_data(instance)
File "C:UsersAppDataLocalContinuumanaconda3libsite-packagespyexcelpluginssourcesdb_sour
ces.py", line 65, in write_data
**self._keywords
File "C:UsersAppDataLocalContinuumanaconda3libsite-packagespyexcelpluginsrenderersdjang
o.py", line 37, in render_sheet_to_stream
**keywords
File "C:UsersAppDataLocalContinuumanaconda3libsite-packagespyexcel_ioio.py", line 129, in
save_data
**keywords
File "C:UsersAppDataLocalContinuumanaconda3libsite-packagespyexcel_ioio.py", line 146, in
store_data
writer.write(data)
File "C:UsersAppDataLocalContinuumanaconda3libsite-packagespyexcel_iobook.py", line 221,
in write
sheet_writer.close()
File "C:UsersAppDataLocalContinuumanaconda3libsite-packagespyexcel_iodatabaseimportersd
jango.py", line 54, in close
self.__objs, batch_size=self.__batch_size
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelsmanager.py", line 82
, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelsquery.py", line 474,
in bulk_create
ids = self._batched_insert(objs_without_pk, fields, batch_size, ignore_conflicts=ignore_conflicts)
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelsquery.py", line 1211
, in _batched_insert
self._insert(item, fields=fields, using=self.db, ignore_conflicts=ignore_conflicts)
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelsquery.py", line 1186
, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelssqlcompiler.py", li
ne 1331, in execute_sql
for sql, params in self.as_sql():
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelssqlcompiler.py", li
ne 1275, in as_sql
for obj in self.query.objs
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelssqlcompiler.py", li
ne 1275, in <listcomp>
for obj in self.query.objs
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelssqlcompiler.py", li
ne 1274, in <listcomp>
[self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelssqlcompiler.py", li
ne 1215, in prepare_value
value = field.get_db_prep_save(value, connection=self.connection)
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelsfields__init__.py",
line 789, in get_db_prep_save
return self.get_db_prep_value(value, connection=connection, prepared=False)
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelsfields__init__.py",
line 1273, in get_db_prep_value
value = self.get_prep_value(value)
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelsfields__init__.py",
line 1268, in get_prep_value
return self.to_python(value)
File "C:UsersAppDataRoamingPythonPython37site-packagesdjangodbmodelsfields__init__.py",
line 1243, in to_python
params={'value': value},
django.core.exceptions.ValidationError: ["'pub_date' value has an invalid date format. It must be in YYYY-MM-DD form
您的默认日期不能是一个空字符串。由于您允许使用NULL
,因此不要设置默认值,如果丢失日期,则只需NULL
即可。
所以更改:
pub_date = models.DateField(null=True, blank=True, default='')
to:
pub_date = models.DateField(null=True, blank=True)
这是您试图放入数据库或由您的表格引起的数据的错误。似乎它更有可能来自模型验证,但是没有表格类,我不确定。
我假设这是来自问题模型上的pub_date
字段,因此输入的数据不在格式/模型所期望的格式中。如果您可以共享实际数据(或一个有用的示例(,我们可以帮助解决故障排除到底导致错误。
如果您正在为创建表的创建此代码,那么它将给出验证错误,因为 date 必须在中日期格式不 default =&quord;&quord;&quot; 。Soln。1 =&gt;尝试不提及 default =''soln.2 =&gt;如果您是更改表,如果您会遇到上述错误,则必须删除所有迁移文件夹并再次运行型号。这个对我有用。