Виджет Django для чувствительных полей

Я работаю над сайтом на Django, который представляет пользователям форму для хранения их ключей API и секретов API.

На данный момент оба поля отображаются как CharField сгенерированные django-crispy-forms, поэтому оба их ключа API и секреты API видны.

Я хотел бы получить поведение, при котором по умолчанию поля отображаются ****** или ●●●●●●, когда они не сфокусированы, и раскрывают содержимое, когда они сфокусированы.

Я пробовал сделать это поле виджетом PasswordInput() в forms.py с помощью

self.fields["my_field"].widget = forms.PasswordInput()

Однако это влечет за собой несколько проблем:

  • Браузеры рассматривают API ключи и API секреты как фактические пароли и сохраняют их на уровне браузера, что не является желательным поведением
  • .
  • Когда поле сфокусировано, содержимое полей не отображается. Чтобы внести изменения, необходимо повторно ввести все значение
  • .

Является ли создание пользовательского виджета единственным решением для этого?

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