You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何定义环境变量DJANGO_SETTINGS_MODULE?解决smart-selects配置错误

如何定义环境变量DJANGO_SETTINGS_MODULE?

场景说明

我在使用ChainedForeignKey(来自django-smart-selects)时遇到了如下错误:

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

相关模型代码如下:

from django.db import models
from smart_selects.db_fields import ChainedForeignKey

# Create your models here.
class City(models.Model):
    name = models.CharField(max_length=25, null=True)

class Area(models.Model):
    name = models.CharField(max_length=25, null=True)
    city = models.ForeignKey(City, on_delete=models.CASCADE)

class Store(models.Model):
    store = models.CharField(max_length=50)
    city = models.ForeignKey(City, on_delete=models.CASCADE)
    area = ChainedForeignKey(Area, chained_field="city", chained_model_field="city")

解决方法

一、通过环境变量设置DJANGO_SETTINGS_MODULE

1. 临时设置(仅当前终端会话有效)

  • Linux/macOS(bash/zsh)
    export DJANGO_SETTINGS_MODULE=你的项目名称.settings
    
  • Windows(命令提示符)
    set DJANGO_SETTINGS_MODULE=你的项目名称.settings
    
  • Windows(PowerShell)
    $env:DJANGO_SETTINGS_MODULE="你的项目名称.settings"
    

2. 永久设置

  • Linux/macOS
    编辑你的shell配置文件(如~/.bashrc、~/.zshrc),添加以下内容:

    export DJANGO_SETTINGS_MODULE=你的项目名称.settings
    

    保存后执行source ~/.bashrc(或对应配置文件)使更改立即生效。

  • Windows

    1. 右键「此电脑」→ 「属性」→ 「高级系统设置」
    2. 点击「环境变量」
    3. 在「用户变量」或「系统变量」区域点击「新建」
    4. 变量名填写DJANGO_SETTINGS_MODULE,变量值填写你的项目名称.settings
    5. 确认所有窗口后,重启终端或应用程序

二、在代码中直接配置settings

如果不想依赖环境变量,可以在代码开头手动配置Django settings:

from django.conf import settings

if not settings.configured:
    settings.configure(
        DEBUG=True,
        SECRET_KEY='your-secret-key-here',
        INSTALLED_APPS=[
            'django.contrib.auth',
            'django.contrib.contenttypes',
            'django.contrib.sessions',
            # 必须添加smart_selects到INSTALLED_APPS
            'smart_selects',
            # 你的其他应用
            'your_app_name',
        ],
        DATABASES={
            'default': {
                'ENGINE': 'django.db.backends.sqlite3',
                'NAME': 'db.sqlite3',
            }
        },
        # 根据smart_selects需求设置USE_DJANGO_JQUERY
        USE_DJANGO_JQUERY=True
    )

额外注意

确保你的项目名称.settings是真实存在的配置文件,并且已经将smart_selects添加到该文件的INSTALLED_APPS列表中。

内容的提问来源于stack exchange,提问作者Anurag Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:55:32