我试图扩展代码,并遇到了一个问题,我不明白一行代码.我知道它的结果 - 但我不明白它是如何发生的,我很自然地害怕改变它.
我遇到的代码行是这样的:
MyGenericRelation().contribute_to_class(model, 'field_name')
Run Code Online (Sandbox Code Playgroud)
这段代码的结果是一个带有'field_name'的字段被添加到'model'中,而我收集的字段中的对象是一个X类型列表(MyGenericRelation的一部分).
我想知道是否有人可以解释这是如何工作的.
因为,为什么我得到一个附加到'field_name'的X对象的列表,如果它必须是在contrib_to_class之前的一般关系或者使用实际的模型类型,说'Y'只给我一个Y的列表.
说实话,我对contrib_to_class方法的影响和功能更感兴趣.
zel*_*lyn 44
基本上,对于具有contribute_to_class
方法的对象,在将它们添加到Model类时,我们调用contribute_to_class
而不是setattr
:这允许对象在添加时对其进行额外的簿记和/或修改.Alex Gaynor在这里有一个很好的解释:http://lazypython.blogspot.com/2008/11/django-models-digging-little-deeper.html
归档时间: |
|
查看次数: |
13855 次 |
最近记录: |