Я предпринят для расширения кода и столкнулся с проблемой, я не понимаю строку кода. Я знаю результат его - но я не понимаю, как это происходит и достаточно естественно боится изменять его.
Строка кода, с которой я столкнулся, является этим:
MyGenericRelation().contribute_to_class(model, 'field_name')
Результатом этого кода является поле с 'field_name', добавляется к 'модели' и от того, что я заключаю, что объекты в поле являются списком типа X (часть MyGenericRelation).
Я задаюсь вопросом, может ли кто-либо объяснить, как это работает.
Как в, почему я получаю список X объектов, присоединенных к 'field_name' и если, это должно быть универсальными отношениями до contribute_to_class или было бы с помощью фактического типа модели, сказать, что 'Y' просто дают мне список Y.
Честно говоря, я больше интересуюсь влиянием и функциональностью contribute_to_class метода.
В основном, для объектов, которые имеют метод calculate_to_class
, при добавлении их в класс модели мы вызываем calculate_to_class
вместо setattr
: это позволяет объектам проводить дополнительный учет и / или модификацию класса по мере их добавления. Здесь Алекс Гейнор дает хорошее объяснение: http://lazypython.blogspot.com/2008/11/django-models-digging-little-deeper.html