I'm following the tutorial here. I have come across this:
def update(self, instance, validated_data):
instance.title = validated_data.get('title', instance.title)
instance.code = validated_data.get('code', instance.code)
instance.linenos = validated_data.get('linenos', instance.linenos)
instance.language = validated_data.get('language', instance.language)
instance.style = validated_data.get('style', instance.style)
instance.save()
return instance
This is probably a very simple question, but what is get function here? I'm having trouble finding any documentation about what it is. I understand that there is a get query function, but are these the same functions?
validated_data is an OrderedDict and OrderedDict.get(key, default) is the method that fetches the value for the given key, returning the default if the key is missing from the dict.
In other words:
instance.title = validated_data.get('title', instance.title) will try to fetch title from validated_data but will return the current instance.title if the title key is not present in the validated data.
https://docs.python.org/2/library/collections.html#collections.OrderedDict https://docs.python.org/2/library/stdtypes.html#dict.get
get has nothing to do with the REST API.
validated_data is a dictionary. You can extract the value from the dictionary in the following ways.
d = some_dictionary
**Method 1:** a = d[key]
**Method 2:** a = d.get(key,custom_value)
In Method 1, a is assigned a value if key is present in the dictionary d. If key is not present, KeyError is raised.
In Method 2, a is assigned the value of d[key] if key is present in the dictionary else it is assigned the custom_value. The custom_value by default is None. Thus, an exception will not be raised even of the dictionary does not contain the key you are looking for.
In short, Method 2 is the safe method for accessing keys of a dictionary.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With