0

Now if I have .env file like

USE_DOCKER=yes
POSTGRES_DB=kbackend
USER=root
DB_URL=$USER:$POSTGRES_DB

when I use env('DB_URL') it returns to me $USER:$POSTGRES_DB I want to return root:kbackend

  • I use django-environ
A.Raouf
  • 2,171
  • 1
  • 24
  • 36

1 Answers1

0

My original incorrect answer:

DB_URL=${USER}:${POSTGRES_DB}

Updated answer: Currently, django-environ does not support this. The relevant code:

logger.debug('Read environment variables from: {0}'.format(env_file))

for line in content.splitlines():
    m1 = re.match(r'\A([A-Za-z_0-9]+)=(.*)\Z', line)
    if m1:
        key, val = m1.group(1), m1.group(2)
        m2 = re.match(r"\A'(.*)'\Z", val)
        if m2:
            val = m2.group(1)
        m3 = re.match(r'\A"(.*)"\Z', val)
        if m3:
            val = re.sub(r'\\(.)', r'\1', m3.group(1))
        cls.ENVIRON.setdefault(key, str(val))
davejagoda
  • 2,420
  • 1
  • 20
  • 27
  • Not working and I tried `{{varr}}` but not working too – A.Raouf Mar 20 '18 at 20:48
  • That code snippet is from`django-environ`. It does not attempt to use variables, it only processes the `.env` contents as strings. Thus what you're trying to do won't work. – davejagoda Mar 18 '19 at 14:04