﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
30178	Support duct-typed database passwords in settings	Dan Davis	Dan Davis	"I have a curious use-case where, as a U.S. Federal Agency, we've built a rather complete mechanism to avoid having database passwords in our settings files.   We have a common library that allows us to ""get a password"", which returns an object which is duck-typed to a string.   When __str__ is called, it obtains the password (or uses a cached copy of the password) using a network protocol, and that returns that.

We are mostly an Oracle shop.   We are now looking at upgrading to Django 2.2 which will be LTS, and have formerly been on Django 1.11 which has been LTS.

It appears that ticket #29199, aka https://github.com/django/django/commit/acfc650f2a6e4a79e80237eabfa923ea3a05d709, broke that for us.

My organization would love to see this lack of duck-typing as a bug; rather than treating this as a request for all passwords to be pluggable (e.g. a Callable).   Supporting duck-typing is consistent with backwards compatibility and also with Python philosophy.

I will attempt to provide a test case and a fix.   I will also evaluate this on other backends, because #29199 was quite legitimate."	Bug	assigned	Database layer (models, ORM)	2.1	Normal		oracle		Unreviewed	0	0	0	0	1	0
