使用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語句集中在文件頂部不是一個好的方法。

bannerAds