Python Can';无法找到将csv导入django模型的有效解决方案

Python Can';无法找到将csv导入django模型的有效解决方案,python,django,csv,Python,Django,Csv,这太乱了,请容忍我 作为将大得多的文件导入Django模型的前奏,我想首先使用csv导入来创建大文件中的模型所依赖的外键字段。此csv正好是两行,标题和fk模型的一个实例的数据 这似乎很简单,而我在这里和网上其他地方读到的所有帖子都让它看起来非常简单。但对我来说不是 以下是我尝试过的: 我写了自己的剧本,基于 然后我发现我必须使用Django.setup()。我从最初的博文中得到这个,但没有提到这一点。它可能是在添加此要求之前编写的。无论如何,我现在必须使用Django.setup,因为这是一个

这太乱了,请容忍我

作为将大得多的文件导入Django模型的前奏,我想首先使用csv导入来创建大文件中的模型所依赖的外键字段。此csv正好是两行,标题和fk模型的一个实例的数据

这似乎很简单,而我在这里和网上其他地方读到的所有帖子都让它看起来非常简单。但对我来说不是

以下是我尝试过的:

  • 我写了自己的剧本,基于 然后我发现我必须使用Django.setup()。我从最初的博文中得到这个,但没有提到这一点。它可能是在添加此要求之前编写的。无论如何,我现在必须使用Django.setup,因为这是一个“独立脚本”。我不断地犯很多错误,比如
  • (加农炮)malikarumi@Tetuoan2:~/Projects/cannon$python./load\u data\u 2.py
    回溯(最近一次呼叫最后一次):
    文件“/load_data_2.py”,第3行,在
    进口Django
    ImportError:没有名为Django的模块
    ImportError:没有名为essell的模块
    回溯(最近一次呼叫最后一次):
    文件“/load_data_2.py”,第8行,在
    django.setup()
    名称错误:未定义名称“django”

  • 我重构了代码以消除这些问题,但却遇到了新的问题
  • 这篇博文中的字段名按索引号列为行。因此,当我最终让它运行时,我得到:

    文件“/home/malikarumi/Projects/cannon/jamf/essell/management/commands/my_loaddata1.py”,第21行,在handle judiction.address=行[1]
    索引器:列表索引超出范围

    因为我只有两行,一个实例的标题和数据,所以我突然想到,可能我需要的是列,而不是行。但这是原剧本的风格。这让我想到了csv上的官方文档,在那里我很沮丧地看到没有按索引号使用行的例子

    沮丧的是,我想知道一个定制的管理命令

  • 自定义django管理命令 (加农炮)malikarumi@Tetuoan2:~/Projects/cannon/jamf$python manage.py myloaddata3
  • `回溯(最近一次呼叫最后一次): ImportError:没有名为cannon.jamf.essell.models的模块'

    我多次更改导入,但Python拒绝识别其中任何一个。显然这是因为它只进口一次。我尝试了imp.reload,但没有成功。我关上了候机楼,然后又重新打开了,但还是没用。我重新启动了电脑,但还是没用。顺便说一句,这个脚本是基于Friendm1在

  • 我看了博士后的复印件,但决定把它传下去,因为: a) 它在ORM之外,并且 b) 文档使它看起来像是指一个数据库,而不仅仅是一个表

  • django csvimport 警告所有处于类似位置的人,有很多听起来类似的应用程序,但有些已经多年没有维护了。Django csvimport最近有更新,但文档非常稀少。我试着完全按照它告诉我的去做,当然也会出错。然后我想到,也许我应该为这件事运行startapp,尽管说明中没有提到这一点。它可能会默默地假设我会知道,而不是完全依赖于所写的东西。但当我尝试时,我得到:

  • (加农炮)malikarumi@Tetuoan2:~/Projects/cannon/jamf$python manage.py startapp csvimport

    CommandError:'csvimport'与现有Python模块的名称冲突,不能用作应用程序名称。请改名。
    (加农炮)malikarumi@Tetuoan2:~/Projects/cannon/jamf$ls
    essell jamf manage.py Procfile README.md requirements.txt runtime.txt

    注意:即使在我重命名,然后删除手动创建的csvimport文件夹之后,我仍然会遇到这个错误。我尝试将其重命名为csvimport2,但这将如何影响程序的其他部分?我不知道这个问题的答案的一个原因是,现在我有了这个csvimport2应用程序,我应该在models.py中添加什么? 我应该运行迁移并为csvimport2创建表吗?显然,文档中确实说要“运行syncdb”。但我“没有要应用的迁移”,即使在已安装的应用程序中有csvimport2


    最后,我向你求助

    我找到了答案:csvkit

    它完成了我所需要的一切(将csv转换为json),而且它有很好的文档记录,并且目前得到了维护

    然后,我将其与Django fixtures和loaddata命令相结合,我很高兴地重新投入工作,大大降低了压力水平


    仔细查看Django页面上的json示例,然后按照该示例进行操作,否则会出现错误,但它确实有效,您还能要求什么呢?

    我找到了答案:csvkit

    它完成了我所需要的一切(将csv转换为json),而且它有很好的文档记录,并且目前得到了维护

    然后,我将其与Django fixtures和loaddata命令相结合,我很高兴地重新投入工作,大大降低了压力水平


    仔细查看Django页面上的json示例,并遵循该示例,否则会出现错误,但它确实有效,你还能要求什么呢?

    你使用的是
    django>=1.8
    ,因为错误在于迁移,所以首先做
    django manage.py makemigrations
    ,然后点
    migrate
    我想你指的是python manage.py,而不是django manage.py@少女拉姆纳尼。以下是我尝试使用圆点时得到的结果:加农炮)malikarumi@Tetuoan2:~/Projects/cannon/jamf$python manage.py./migrate未知命令:'./migrate'键入'manage.py help'以了解用法。(加农炮)malikarumi@Tetuoan2:~/Projects/cannon/jamf$python manage.py.migrate未知命令:'.migrate'键入'manage.py help'了解用法。是的,对不起!它的
    python
    不是
    django
    您正在使用
    django>=1.8
    ,因为错误在于迁移,所以首先执行
    django manage.py makemigrations