I recently was introduced to the concept of descriptors in Python, and it looks like fields like CharField() are descriptors. However, I find the concept of descriptors quite enigmatic, and am trying to piece together the puzzle bu asking related questions.
For now my question is: What do we gain by having these attributes on the class rather than on the instance? I mean, why can't the fields we are using in a model be defined in __init__()?
I guess what I am asking is more of a Python question than a Django one, but because Django is actually using this language feature to do something real-world, I thought of tossing the question here.