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
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})
内部服务器错误:/ import / 追溯(最近一次通话): 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ core \ handlers \ exception.py”,l ine 34,在内部 响应= get_response(请求) 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ core \ handlers \ base.py”,第1行 15,在_get_response中 响应= self.process_exception_by_middleware(e,请求) 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ core \ handlers \ base.py”,第1行 13,在_get_response中 响应= wraped_callback(请求,* callback_args,** callback_kwargs) 文件“ C:\ Users \ Desktop \ PerfImport \ importer \ perfimport \ views.py”,第20行,在import_sheet中 mapdict = ['question_text','pub_date','slug']) 文件“ C:\ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ django_excel__init __。py”,行 49,在save_to_database中 pe.save_as(** params) 文件“ C:\ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pyexcel \ core.py”,行s,82 ave_as 返回sources.save_sheet(sheet,** dest_keywords) 文件“ C:\ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pyexcel \ internal \ core.py”,行 48,在save_sheet中 返回_save_any(a_source,工作表) 文件“ C:\ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pyexcel \ internal \ core.py”,行 60,在_save_any中 a_source.write_data(instance) 文件“ C:\ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pyexcel \ plugins \ sources \ db_sour ces.py“,第65行,在write_data中 ** self._keywords 文件“ C:\ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pyexcel \ plugins \ renderers \ djang o.py”,第37行,在render_sheet_to_stream中 **关键字 文件“ C:\ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pyexcel_io \ io.py”,第129行,在 保存数据 **关键字 文件“ C:\ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pyexcel_io \ io.py”,第146行,在 存储数据 writer.write(数据) 文件“ C:\ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pyexcel_io \ book.py”,第221行, 写 sheet_writer.close() 文件“ C:\ Users \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pyexcel_io \ database \ importers \ d jango.py”,第54行,关闭 self。 objs,batch_size = self。__batch_size 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ manager.py”,第82行 ,在manager_method中 返回getattr(self.get_queryset(),name)(* args,** kwargs) 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ query.py”,行474, 在bulk_create ids = self._batched_insert(objs_without_pk,字段,batch_size,ignore_conflicts = ignore_conflicts) 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ query.py”,第1211行 ,位于_batched_insert中 self._insert(项目,字段=字段,使用= self.db,ignore_conflicts = ignore_conflicts) 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ query.py”,行1186 ,在_insert中 返回query.get_compiler(using = using).execute_sql(return_id) 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ sql \ compiler.py”,li ne 1331,在execute_sql中 对于sql,self.as_sql()中的参数: 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ sql \ compiler.py”,li ne 1275,在as_sql中 用于self.query.objs中的obj 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ sql \ compiler.py”,li ne 1275,在 用于self.query.objs中的obj 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ sql \ compiler.py”,li ne 1274,在 [用于字段中字段的self.prepare_value(field,self.pre_save_val(field,obj))] 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ sql \ compiler.py”,li ne 1215,在prepare_value中 值= field.get_db_prep_save(值,连接=自连接) 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ fields__init .py”, 第789行,在get_db_prep_save中 返回self.get_db_prep_value(值,连接=连接,准备=假) 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ fields__init __。py”, 第1273行,在get_db_prep_value中 值= self.get_prep_value(值) 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ fields__init __。py”, 第1268行,在get_prep_value中 返回self.to_python(value) 文件“ C:\ Users \ AppData \ Roaming \ Python \ Python37 \ site-packages \ django \ db \ models \ fields__init __。py”, 第1243行,在to_python中 params = {'value':value}, django.core.exceptions.ValidationError:[“'pub_date'值的日期格式无效。它必须为YYYY-MM-DD格式
答案 0 :(得分:0)
这是由于您试图放入数据库中的数据引起的错误,或者是由您拥有的表单引起的。似乎更有可能来自模型验证,但是我不确定是否没有表单类。
我假设这是来自Question模型上的pub_date
字段,因此输入的数据不是表格/模型所期望的格式。如果您可以共享实际数据(或有用的示例),我们可以帮助您排除导致错误的确切原因。
答案 1 :(得分:0)
您的默认日期不能为空字符串。由于您允许使用NULL
,因此无需设置默认值,这样,如果缺少日期,日期将仅为NULL
。
所以改变:
pub_date = models.DateField(null=True, blank=True, default='')
收件人:
pub_date = models.DateField(null=True, blank=True)