Мне интересно, как изменить поведение поля формы на основе данных в запросе ... особенно в том, что касается администратора Django.Например, я хотел бы расшифровать поле в администраторе на основе данных запроса (таких как POST или переменные сеанса).
Я думаю начать с переопределения метода change_view в django / contrib / admin / options.py, так как он имеет доступ к запросу.Однако я не уверен, как повлиять на то, как значение поля отображает поле в зависимости от некоторого значения в запросе.Если запрос имеет правильное значение, значение поля будет отображаться;в противном случае значение поля будет возвращать что-то вроде «NA».
Я думаю, что если бы я мог каким-то образом получить это значение запроса в метод to_python (), я мог бы напрямую повлиять на отображение поля.Стоит ли пытаться передать значение запроса в форму init , а затем как-нибудь в поле init ?Любые предложения, как я мог бы подойти к этому?
Спасибо за чтение.
В models.py
class MyModel(models.Model):
hidden_data = models.CharField()
В admin.py
class MyModelAdmin(models.ModelAdmin):
class Meta:
model = MyModel
def change_view(self, request, object_id, extra_context=None):
.... # Perhaps this is where I'd do a lot of overriding?
....
return self.render_change_form(request, context, change=True, obj=obj)