Объяснение contribute_to_class

Я предпринят для расширения кода и столкнулся с проблемой, я не понимаю строку кода. Я знаю результат его - но я не понимаю, как это происходит и достаточно естественно боится изменять его.

Строка кода, с которой я столкнулся, является этим:

MyGenericRelation().contribute_to_class(model, 'field_name')

Результатом этого кода является поле с 'field_name', добавляется к 'модели' и от того, что я заключаю, что объекты в поле являются списком типа X (часть MyGenericRelation).

Я задаюсь вопросом, может ли кто-либо объяснить, как это работает.

Как в, почему я получаю список X объектов, присоединенных к 'field_name' и если, это должно быть универсальными отношениями до contribute_to_class или было бы с помощью фактического типа модели, сказать, что 'Y' просто дают мне список Y.

Честно говоря, я больше интересуюсь влиянием и функциональностью contribute_to_class метода.

34
задан 2 March 2010 в 08:32
поделиться

1 ответ

В основном, для объектов, которые имеют метод calculate_to_class , при добавлении их в класс модели мы вызываем calculate_to_class вместо setattr : это позволяет объектам проводить дополнительный учет и / или модификацию класса по мере их добавления. Здесь Алекс Гейнор дает хорошее объяснение: http://lazypython.blogspot.com/2008/11/django-models-digging-little-deeper.html

44
ответ дан 27 November 2019 в 17:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: