如何将django模型导入脚本?
我正在编写一个脚本,将数据导入现有的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 (
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'。