使用Django模型进行记录插入时发生的错误
概述
我想记录下我在学习Django时遇到的困扰,并将其作为错误备忘录。
环境
Django版本号:’4.0.4′
Python版本号:’3.10.4′
假设/假定/如果条件/如果的前提是
首先,我们假设以下情况。
- nameとageのカラムを持ったPersonテーブルにデータを挿入したい
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=10)
age = models.IntegerField()
错误概要
为了向表格中插入数据,我在下述文件中编写并执行了处理。
import os
from django import setup
from model_app.models import Person
# 環境変数をセット
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '左記の環境変数の値')
setup()
sample_person = Person(name='tanaka', age=20)
sample_person.save()
执行上述文件
python3 main.py
然后出现了以下错误。
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.
阅读错误消息时,建议设置DJANGO_SETTINGS_MODULE或调用setting.configure()。然而,尽管已定义DJANGO_SETTINGS_MODULE,但仍然存在问题。
解决方法 (jiě jué fǎ)
经过各种调查之后,似乎由于处理的顺序不同导致了错误的发生。
根据下面的文章参考,我尝试改变了处理的顺序。
修正后的内容如下所列。
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '左記の環境変数の値')
from django import setup
setup()
from model_app.models import Person
sample_person = Person(name='tanaka', age=20)
sample_person.save()
我們可以使用這個方法將數據插入到表中。
看來將import語句集中在文件頂部不是一個好的方法。