我正在扩展一个当前项目,遇到了这行代码:
MyGenericRelation().contribute_to_class(model, 'field_name')
这段代码的结果是一个带有'field_name'的字段被添加到'model'中,根据我收集到的信息,该字段中的对象是一个X类型的列表(MyGenericRelation的一部分)。
我想了解这个contribute_to_class
方法是如何工作的。为什么我会得到一个附加到'field_name'的X对象的列表,它必须是泛型关系吗?
1条答案
按热度按时间thtygnil1#
基本上,对于具有
contribute_to_class
方法的对象,当将它们添加到Model类时,我们调用contribute_to_class
而不是setattr
:这允许对象在添加时做额外的簿记和/或类的修改。Alex Gaynor在这里有一个很好的解释:http://lazypython.blogspot.com/2008/11/django-models-digging-little-deeper.html