Problem importing data using django-import-export error NOT NULL constraint failed:

问题描述 投票:0回答:2

我已经在我的项目中设置了 django-import-export 应用程序,并且一直在尝试从 Excel 电子表格中导入数据,但没有成功。我删除了我的迁移文件和数据库并再次生成它们以查看是否有帮助但仍然是相同的错误。

模型.py:

from django.db import models

# Create your models here.
class logTimes(models.Model):
    fast_finished = models.BooleanField(default=False)
    start_date_time = models.DateTimeField('start fast')
    end_date_time = models.DateTimeField('end fast')

0001_initial.py:

# Generated by Django 4.0.4 on 2022-07-13 22:14

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='logTimes',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('fast_finished', models.BooleanField(default=False)),
                ('start_date_time', models.DateTimeField(verbose_name='start fast')),
                ('end_date_time', models.DateTimeField(verbose_name='end fast')),
            ],
        ),
    ]

管理员.py:

from import_export.admin import ImportExportModelAdmin
from django.contrib import admin
from .models import logTimes

@admin.register(logTimes)
class logTimesAdmin(ImportExportModelAdmin):
    pass

电子表格中的第 1 行和第 2 行:

尝试导入时管理站点中的错误消息:

Line number: 1 - NOT NULL constraint failed: startandstoptimes_logtimes.start_date_time
True, 05/08/2018 17:15:00, 06/08/2018 13:30:00, None
Traceback (most recent call last):
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\backends\sqlite3\base.py", line 477, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.IntegrityError: NOT NULL constraint failed: startandstoptimes_logtimes.start_date_time

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "C:\Users\rlead\anaconda3\lib\site-packages\import_export\resources.py", line 695, in import_row
self.save_instance(instance, using_transactions, dry_run)
File "C:\Users\rlead\anaconda3\lib\site-packages\import_export\resources.py", line 469, in save_instance
instance.save()
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\models\base.py", line 806, in save
self.save_base(
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\models\base.py", line 857, in save_base
updated = self._save_table(
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\models\base.py", line 1000, in _save_table
results = self._do_insert(
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\models\base.py", line 1041, in _do_insert
return manager._insert(
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\models\query.py", line 1434, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\models\sql\compiler.py", line 1621, in execute_sql
cursor.execute(sql, params)
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\backends\utils.py", line 103, in execute
return super().execute(sql, params)
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\backends\utils.py", line 67, in execute
return self._execute_with_wrappers(
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\backends\utils.py", line 80, in _execute_with_wrappers
return executor(sql, params, many, context)
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\rlead\anaconda3\lib\site-packages\django\db\backends\sqlite3\base.py", line 477, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: NOT NULL constraint failed: startandstoptimes_logtimes.start_date_time

我尝试从 1 开始将主键 ID 列添加到我的电子表格中,但这没有任何区别。在我所有的研究中,我尝试过的每一个解决方案都没有成功。如果有人能看到我哪里出错了,你的建议会很好。

python django django-import-export
2个回答
0
投票

我犯了一个错误。它也显示此错误只是因为我的 csv 文件有 有问题。"weibo_content, weibo_forward, weibo_comments, weibo_like"。后面不能有空格,


0
投票

这个错误的原因是因为你用datetimeField创建的字段。 换边 null=True 或赋值。

models.DateTimeField(null=True)

models.DateTimeField(auto_now_add=True)
© www.soinside.com 2019 - 2024. All rights reserved.