我有一个Django项目,其中包括我的模型、视图和url。路径结构如下:
--mainProject
--measurements
--views.py
--urls.py
--models.py
--migrations
--templates.py
--management
--commands
--add_data.py
--clear_data.py
--init.py
--_pycache_
在构建这个项目时,我创建了模型.py先是迁徙。后来,我移居国外。添加_数据.py文件将数据添加到表中并清除_数据.py文件删除数据。我查了一下地址_数据.py文件和它工作过一次,但我也有类似的错误。我忘了我是如何让它通过命令行运行的。但是,现在如果我删除数据库并尝试运行add_数据.py文件我得到这个错误:
from measurements.models import Area, Category, Location, Measurement ModuleNotFoundError: No module named 'measurements'
我的代码是:
模型.py
^{pr2}$添加_数据.py
from measurements.models import Area, Category, Location, Measurement
import random
from django.core.management.base import BaseCommand
from django.utils import timezone
class Command(BaseCommand):
help = "adds sample entities to the application"
def handle(self, *args, **options):
area_data = [
[1, "Grand Canyon", 20, 30],
[2, "Boca Raton", 40, 50],
[3, "Atlanta", 60, 70],
[4, "Mount Hood", 80, 90],
[5, "Mount Rainer", 46.5, 121.5],
[6, "Saint Olaf", 44, 93],
[7, "Mount St. Helens", 46, 122]
]
for ad in area_data:
a = Area(name=ad[1], id=ad[0], longitude=ad[2], latitude=ad[3])
a.save()
location_data = [
[11, "South rim", 200, 1],
[12, "North rim", 300, 1],
[13, "Phantom Ranch", 100, 1],
[14, "Waterfront", 10, 2],
[15, "Town center", 15, 2],
[16, "Town center", 310, 3],
[17, "University", 320, 3],
[18, "Mall", 330, 3],
[19, "Airport", 350, 3],
[20, "South pass", 3500, 4],
[21, "North rim", 4500, 4],
[22, "Crater", 4000, 4],
[23, "North pass", 14000, 5],
[24, "South glacier", 15000, 5],
[25, "Ranger station", 16000, 5],
[26, "Summit", 17000, 5],
[27, "Yttrboe", 250, 6],
[28, "Science", 250, 6],
]
no_measurements_location_ids = [23]
for locd in location_data:
loc = Location(id=locd[0], name=locd[1], altitude=locd[2])
a = Area.objects.get(pk=locd[3])
loc.area = a
loc.save()
category_data = [
[31, "Volcanos", "Areas that are on volcanoes", [4, 5]],
[32, "East", "Areas that are in the east", [2, 3]],
[33, "West", "Areas that are in the west", [1, 4, 5]],
[34, "Wetlands", "Areas that are wetlands", []]
]
for catd in category_data:
cat = Category(id=catd[0], name=catd[1], description=catd[2])
cat.save()
for memb_id in catd[3]:
a = Area.objects.get(pk=memb_id)
cat.members.add(a)
cat.save()
num_meas_per_loc = 10
for locd in location_data:
loc_id = locd[0]
if loc_id not in no_measurements_location_ids:
loc = Location.objects.get(pk=loc_id)
for meas_id in range(loc_id*100, loc_id*100+num_meas_per_loc):
val = random.uniform(5+loc_id*3, 15+loc_id*3)
meas = Measurement(value=val, id=meas_id, date=timezone.now())
meas.location = loc
meas.save()
我做错了什么导致了这个错误?在
add_data.py
是一个管理命令,而不是一个独立的脚本,因此您应该以以下方式运行它:如果您直接运行
add_data.py
,那么您的主项目目录(包含manage.py
的目录)将不会自动位于Python路径上,因此您将得到一个导入错误。在相关问题 更多 >
编程相关推荐