Как исправить ошибку 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