Skip to content

DOTENV - Using environ_name strange behevior #380

@alon-p

Description

@alon-p

Hi
First of all, thanks for making django-configurations. It's great! Thank you

I've noticed a weird bug while using the DOTENV in my configurations
I have an .env file with this value

.env

MY_URL=http://some.domain.com

And in my settings.py file I define this

settings.py

class Base(Configuration):
    BASE_DIR = Path(__file__).resolve().parent.parent
    DOTENV = os.path.join(BASE_DIR, '.env')
    ....

class Development(Base):
    MY_URL = values.Value(environ_name="MY_URL")

When I run

python manage.py runserver

Everything work as expected, MY_URL gets its value from the .env file.

But when I run other manage.py commands (I haven't checked with all of them)

python manage.py migrate

MY_URL is None.

For now I can workaround that by setting environ_prefix to an empty string instead of using environ_name.

settings.py

class Development(Base):
    MY_URL = values.Value(environ_prefix="")

I've tried to dig through the source code to see if I can fix this but so far I haven't.
If I find something, I'll try opening a PR.

Any Ideas where to look?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions