Функция Django to_python, вызываемая при каждом запросе к базе данных - PullRequest
2 голосов
/ 23 ноября 2011

Я работаю над веб-приложением, которое позволяет пользователям отправлять форму. После отправки формы get_db_prep_value() шифрует все поля. С чем я борюсь, так это с функциональностью, которая расшифровывает поля в приложении администратора django. Процесс дешифрования работает нормально, проблема в том, что метод дешифрования, указанный в методе to_python, вызывается при отправке формы. Насколько я понимаю, метод to_python состоял в том, что он вызывается только тогда, когда запрос к базе данных делается из базы данных (выберите запрос), а не к базе данных (обновление, вставка).

Вот мой класс настраиваемого поля:

class EncryptedField(models.Field):
    # ...

    def to_python(self, value):
        return decrypt(value)

    def get_db_prep_value(self, value):
        return encrypt(value)

Как получить метод to_python для вызова только в том случае, если форма загружена в приложение администратора django на странице формы изменений?

1 Ответ

1 голос
/ 25 ноября 2011

«Метод to_python () для поля является первым шагом в каждой проверке.»

https://docs.djangoproject.com/en/1.3/ref/forms/validation/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...