karababarabas
New Coder
I'd like to ask somebody experienced in Django (or Python in general), how e.g. ModelSerializer accesses attributes created by me? How does it know about my class?
I mean django code was written months/years before mine code and in this particular class I'm not calling any method or anything, it's just declaration:
I know what it does, and it works for me, I'd like to know how exactly.
I can do something like this:
The same principle and it works as well.
But Django doesn't apply that approach. I googled meta classes, also I read through django rest_framework - serializers.py but I was not able to get the concept how this:
class StatSerializer(SomeParent):
class Meta:
model = "my model"
can serve as an input for something else (parent class). Can you write class SomeParent that would print "my model" (get access of that attribute) and not using __subclasses__ as I did above?
Thanks.
I mean django code was written months/years before mine code and in this particular class I'm not calling any method or anything, it's just declaration:
Python:
class StatSerializer(serializers.ModelSerializer):
class Meta:
model = Stats
fields = '__all__'
I know what it does, and it works for me, I'd like to know how exactly.
I can do something like this:
Python:
class A:
def __init__(self):
print(A.__subclasses__()[0].Meta.agreedField)
class B(A):
class Meta:
agreedField = 1
A()
# output: 1
The same principle and it works as well.
But Django doesn't apply that approach. I googled meta classes, also I read through django rest_framework - serializers.py but I was not able to get the concept how this:
class StatSerializer(SomeParent):
class Meta:
model = "my model"
can serve as an input for something else (parent class). Can you write class SomeParent that would print "my model" (get access of that attribute) and not using __subclasses__ as I did above?
Thanks.
Last edited: