Как обезьяна патч функции Django? - PullRequest
2 голосов
/ 06 октября 2019

Я хочу настроить содержимое строки администратора django change_list_result, поэтому я предполагаю переопределение, связанное с функцией change_list_result.

И я обнаружил, что konw call display_for_field через items_for_result в django.contrib.admin.templatetags.admin_list. admin_list.py

Я поместил следующий код в manage.py, но не работает.

from django.contrib.admin.utils import display_for_field
from warehouse.monkey_patching import _display_for_field_mod

display_for_field = _display_for_field_mod

1 Ответ

1 голос
/ 06 октября 2019

Здесь вы переопределяете локальную переменную dispaly_for_field. Если вы хотите переопределить его, вам нужно установить атрибут модуля:

from django.contrib.admin import <b>utils</b>
from warehouse.monkey_patching import _display_for_field_mod

<b>utils.</b>display_for_field = _display_for_field_mod

Как вы, вероятно, уже знаете, вы должны убедиться, что вы обезьяны исправили функцию до другоймодули импортируют его, иначе они получат ссылку на «старую» функцию. Таким образом, вы, вероятно, должны импортировать это как одну из первых строк в вашем файле manage.py.

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