django 有人能解释一下contribute_to_class是如何工作的吗?

ajsxfq5m  于 2022-12-01  发布在  Go
关注(0)|答案(1)|浏览(128)

我正在扩展一个当前项目,遇到了这行代码:

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

这段代码的结果是一个带有'field_name'的字段被添加到'model'中,根据我收集到的信息,该字段中的对象是一个X类型的列表(MyGenericRelation的一部分)。
我想了解这个contribute_to_class方法是如何工作的。为什么我会得到一个附加到'field_name'的X对象的列表,它必须是泛型关系吗?

thtygnil

thtygnil1#

基本上,对于具有contribute_to_class方法的对象,当将它们添加到Model类时,我们调用contribute_to_class而不是setattr:这允许对象在添加时做额外的簿记和/或类的修改。Alex Gaynor在这里有一个很好的解释:http://lazypython.blogspot.com/2008/11/django-models-digging-little-deeper.html

相关问题