Как исправить ошибку AttributeError: объект 'NoneType' не имеет атрибута 'encode' в set.py Django

Я хочу упростить процесс кодирования, запуская DATABASE_URL из файлов docker-compose, чтобы использовать set.py, можете ли вы предложить решение ошибки, с которой я сталкиваюсь?

Когда я использую python manage.py migrate, я столкнулся с этой проблемой. DATABASES = {'default': dj_database_url.parse(DATABASE_URL.encode())} AttributeError: у объекта 'NoneType' нет атрибута 'encode'

docker-compose.yml

version: '3.7'
services:
  db:
    image: mariadb:10
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=mariadb
      - MYSQL_DATABASE=mariadb
      - MYSQL_USER=mariadb
      - MYSQL_PASSWORD=mariadb
      - MARIADB_ROOT_PASSWORD=mysecretpassword
    ports:
      - 3306:3306
    volumes:
      - "mysqldata:/var/lib/mysql"  

  web:
    build: .
    restart: always
    command: python manage.py runserver 0.0.0.0:8000
    environment:
      - DATABASE_URL=mariadb+mariadbconnector://user:mariadb@db:3306/mariadb
    ports:
      - "8000:8000"
    depends_on:
      - db
      
volumes:
  mysqldata:

setting.py

import os
import dj_database_url

DATABASE_URL = os.environ.get('DATABASE_URL')
DATABASES = {'default': dj_database_url.parse(DATABASE_URL.encode())}

Переменная DATABASE_URL кажется None, вы можете войти в контейнер docker и printenv, чтобы увидеть переменные окружения. (docker exec <container_name> printenv

Вернуться на верх