在Django中要在哪里建立数据库对象(不使用shell)?

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

我已经在我的model.py文件中创建了数据库模型,但是我希望能够用数据填充它们。我编写的代码从我拥有的文本文件中读取数据,并为模型创建对象。但是我不确定在哪里实际运行此代码,我能找到的所有教程都只能通过外壳创建对象,但是由于我正在从文本文件中读取内容,并且由于代码很长,所以我不想使用贝壳。我的解决方案是在我的应用程序文件夹中创建一个名为buildDB的文件,然后在其中运行代码,但这将无法工作:

如果我尝试使用以下命令将模型导入文件顶部from .models import *我明白了ImportError: attempted relative import with no known parent package当我运行它时。如果我尝试使用from applicatonName.models import*我得到

django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

当我用Google搜索第二条错误消息时,似乎是因为我没有使用manage.py shell,而第一条错误消息我什至都不知道,所以发生了这种情况。我是否必须使用shell来填充数据库?如果没有,我将代码放在哪里?

python django django-models django-database
1个回答
1
投票

看来您应该编写数据迁移:https://docs.djangoproject.com/en/3.0/topics/migrations/#data-migrations

另一种选择是编写“自定义命令”:https://docs.djangoproject.com/en/3.0/howto/custom-management-commands/

[最后,您可以编写一个外部脚本来初始化django并从该文件创建所有模型对象:只需将python脚本放在与django项目相同的文件夹中(或在scripts文件夹中),并在以下位置运行django.setup()开始。该脚本可以导入和使用模型和ORM并创建所有数据库对象。

© www.soinside.com 2019 - 2024. All rights reserved.