Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将django模型导入脚本?_Django_Python 3.x - Fatal编程技术网

如何将django模型导入脚本?

如何将django模型导入脚本?,django,python-3.x,Django,Python 3.x,我正在编写一个脚本,将数据导入现有的Django模型: import csv from django.db import models from movies.models import Movie from sys import argv script, filename = argv with open(filename) as csvfile: reader = csv.reader(csvfile) for row in reader: print (

我正在编写一个脚本,将数据导入现有的Django模型:

import csv
from django.db import models
from movies.models import Movie
from sys import argv

script, filename = argv

with open(filename) as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print (row)
        # _, created = Movie.title.get_or_create(
        #     title=row[0],
        #     )
但我在尝试导入模型时遇到以下错误:

Traceback (most recent call last):
    File "import.py", line 3, in <module> 
        from movies.models import Movie
ImportError: No module named 'movies'
回溯(最近一次呼叫最后一次):
文件“import.py”,第3行,在
从电影。模型导入电影
ImportError:没有名为“电影”的模块

您是否已在“已安装的应用程序”下的settings.py中注册了应用程序“列表”?
还可以尝试使用python manage.py migrate迁移模型 这种方法似乎是正确的,它是您使用csv模块的标准方式


您可以通过回溯编辑问题,以详细了解您的问题。

首先,以与manage.py文件中类似的方式加载django设置。在此场景中,“列表”是项目名称,“电影”是应用程序名称

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lists.settings")

import csv
from django.db import models
from movies.models import Movie
from sys import argv

script, filename = argv

with open(filename) as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print (row)
        # _, created = Movie.title.get_or_create(
        #     title=row[0],
        #     )

最后,确保将脚本放在项目的根目录中。

我的应用程序实际上被称为“电影”(已注册),项目是“列表”,并且没有任何可迁移的内容。当我启动服务器时,应用程序和模型工作正常,但当我尝试运行脚本时,问题就出现了。由于应用程序名为movies,您应该以以下方式导入模型:from movies.models import MovieMmm。我试过了,但现在错误是“ImportError:没有名为'movies'的模块”,我假设您在已安装的应用程序中注册了应用程序'movies'?是的,已注册'movies'。