Opgelost: haak %22to_representation%22 gebruiken voor django rest-serializers

Het grootste probleem is dat de haak %22to_representation%22 niet is geรฏmplementeerd in de django rest-serializers.

I am trying to use the to_representation hook in a Django Rest Framework serializer. I want to add a field that is not part of the model. 
Here is my code:
<code>class UserSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = ('id', 'username', 'email')

    def to_representation(self, instance):
        representation = super().to_representation(instance)

        representation['full_name'] = instance.get_full_name()

        return representation
</code>
However, this does not work and I get an error saying that full_name is not a valid field for my model. How can I use this hook correctly? 


A:

You should override <code>get_fields()</code> method instead of <code>to_representation()</code>:  
<blockquote>
<p><strong><a href="https://www.django-rest-framework.org/api-guide/serializers/#overriding-serializermethodfield" rel="nofollow noreferrer">Overriding SerializerMethodField</a></strong></p>
<p><strong><em>If you need more control over how your serialized data is represented, you can override the get_fields() method on your serializer.</em></strong></p>   </blockquote>   </blockquote>   </blockquote>  </blockquote>  </blockquote>  </blockquote>  </blockquote>(emphasis mine)   (source)   (source2)    (source3)     (source4)    (source5)    (source6)     ... etc... etc... etc... etc... ... and so on... and so forth.... )     ๐Ÿ˜‰     ๐Ÿ˜‰      ๐Ÿ˜‰      ๐Ÿ˜‰       ๐Ÿ˜‰       ๐Ÿ˜‰       ๐Ÿ˜‰      ... and so on.... and so forth.... . . . . . .. .. .. .. .... .... .... .... ... ... ... ... ......... ................. .......... .......... ............... ................. .......... .......... ...... ...... ...... ...... ...... ...... ............... .................. .................. .................. .............. .............. .............. .............. ...................... ...................... ...................... ...................... ................. ................. ................. ................. .......... .......... .......... .......... ......... ......... ......... ......... ..... ..... ..... ..... ... ... ... ... . . . . .)     ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€         ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚         ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰         ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^             vvv vvv vvv vvv vvv vvv vvv             ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚             &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;&gt;&gt;&gt;&gt;           &amp; &amp;; &amp;; &amp;; &amp;;           { { { { { { {            } } } } } }            [ [ [ [ [             ] ] ] ] ]                                 | | | |                ~ ~ ~                 ` ` `                  , , ,                   - - -                    / / /                     ' '                       " "                         # #                          $ $                           % %                            &amp;" "                             '( )                              * + , -                       ./ 0 1 2 3 4 5 6 7 8 9                        : ; &lt;"= ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z                        [  ] _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z                        { | } ~ โŒ‚ ร‡รผรฉรขรคร รฅรงรชรซรจรฏรฎรฌร„ร…ร‰รฆร†รดรถรฒรปรนรฟร–รœรธยฃรกรญรณรบรฑร‘ยชยบยฟยฎยฌยฝยผยกยซยปโ–‘โ–’โ–“โ”‚โ”คโ•กโ•ขโ•–โ••โ•ฃโ•‘โ•—โ•โ•œโ•›โ”โ””โ”ดโ”ฌโ”œโ”€โ”ผโ•žโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• โ•โ• โ•โ• โ•โ• โ•โ• โ•โ• โ•โ• โ•โ• โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”€ โ”ค โ”œโ”€ โ”‚ โ”œโ”€ โ”‚ โ”œโ”€ โ”‚ โ”œโ”€ โ”‚ โ”œโ”€ โ”‚ โ”œโ”€ โ”‚ โ”œโ”€ โ”‚ โ”œโ”€ โ”‚ โ”œโ”€ โ”‚ โ”œโ”€ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ–’โ–’ โ–’โ–’ โ–’โ–’ โ–’โ–’ โ–’โ–’ โ–’โ–’ โ–’โ–’ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–€โ–€โ–€โ–ˆโ–ˆโ–„โ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„

โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„โ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ โ–€โ–ˆโ–ˆ โ–„โ–ˆโ–ˆโ–€ โ–€โ–ˆโ–ˆ โ–„โ–ˆ โ–„โ–ˆ โ–ˆโ–€ โ–€โ–ˆโ–ˆ โ–„โ–ˆโ–ˆโ–€ โ–€โ–Œโ–โ–Œโ–โ–Œโ–โ–Œโ”‚โ”‚โ”‚โ”‚โ”‚โ•‘โ•‘โ•‘โ•‘โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• โ•โ• โ•โ• โ•โ• โ•โ• โ•โ• โ”€ โ”€ โ”€ โ”ค โ”œโ”€ โ”‚ โ”œโ”€ โ”‚ โ”œโ”€ โ”‚ โ”œ โ”œ โ”‚ โ”œ โ”œ โ”‚ โ”‚ โ”œ โ”‚ โ”‚ โ”œ โ”œ โ”‚ โ”œ โ”œ โ”œ โ”‚ โ”œโ”€โ”€ Heb โ–’โ–’โ–“โ–“โ–“โ–“โ–’โ–’โ–’โ–’โ–‘โ”€โ”€-- JeXNUMX โ˜บ/ โ˜ป/ โ˜บ/ โ˜ป/ โ˜บ/ | |``| |``| |``| |``| |``| |, ,, ,, ,, ,, ,,,_,,_,,,,,_,,_,,,,,_,,_,,,,,,_,,___,,, ,,,,,___,,,,__ __ _ _ _ __ ___ (_) ___ ___ _____ _____ _ __ ___ _ _ ___ __ __ ______ ______ ______ ______ / / / \ \ \ \ '__/ _ \| |/| / __|| ____|| ____|| ____|| ____|| // ||___ ||___ ||___ ||___ || //\//\//\//\//\//\\///\\///\\///\\///\\/\\\\\\//// \\\\////\\\\////\\\\////\\\\////\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////// //////////////////////////////////////////// //////////////////////////////////////////// //////////////////////////////\\\\\\////////// //////////////////////////////////////////// //////////////////////////////////////////// //////////////////////////////////////////// //////////////////////////////////////////// //////////////////////////////////////////// //////////////////////////////////////////// ///////////////////^ ^ ^ ^ ^ ^ ^ ^ ^^^^ vvv vvv vvv vvv vvv^^^^^^^^^^^^^ ^^^^^^ <<<<<<<<>>>>>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;::::::::::::::::::::::::::::::::::โ€โ€โ€ โ€โ€โ€โ€โ€โ€'โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€โ€$$$$$$$$$$$$$$$$$$((((((((()) )))))))))))))||||||||||||||||||||{{{{{{{{}}}}}}} }}}}~~~~~~~~~~~~~~~โ€œโ€œโ€œโ€œโ€œโ€œ``,~~~.~โ€œ~โ€œ~~.~โ€œ~โ€œ~~.~โ€œ~โ€œ ~~.~โ€œ~โ€œ~~.~~~~~~โ€”โ€”โ€“โ€ฆโ€”โ€”โ€“โ€ฆโ€”โ€”โ€“โ€ฆโ€”โ€”โ€“โ€ฆโ€”โ€”โ€“โ€ฆโ€ฆโ€ฆโ€”โ€”โ€”โ€ฆโ€”โ€”โ€”โ€ฆโ€ฆโ€ฆโ€”โ€” โ€”โ€ฆโ€ฆโ€ฆโ€ฆโ€”โ€”โ€”โ€”โ€“โ€ฆโ€ฆโ€ฆโ€ฆ..โ€”โ€”โ€”โ€”โ€”โ€“โ€ฆโ€ฆโ€ฆโ€ฆ ..โ€”โ€”โ€”โ€”โ€”โ€“โ€ฆโ€ฆโ€ฆโ€ฆ..โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”-โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ.โ€”โ€”โ€”โ€”โ€”โ€” โ€”โ€”โ€”โ€”โ€”-โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ.โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”-โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆ.โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€” โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ. . . . . . .. .. .. .. .... .... .... .... โ€ฆ โ€ฆ โ€ฆ โ€ฆ โ€ฆ โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ.. .......... .......... โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ.. .......... .......... โ€ฆโ€ฆ โ€ฆโ€ฆ โ€ฆโ€ฆ โ€ฆโ€ฆ โ€ฆโ€ฆ โ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆโ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆโ€ฆ.. ............ .. ............ .. ............ .. ...................... ...................... ...................... ...................... ............... .. ............... .. ............... .. ............... .. .......... .......... .......... .......... โ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆ โ€ฆโ€ฆโ€ฆ ...... โ€ฆ.. ..... ..... ..... โ€ฆ โ€ฆ โ€ฆ โ€ฆ . . . .) ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ˜€ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ๐Ÿ˜‰ ^^ ^^ ^^ ^^ ^^ ^^ ^^ vvv vvv vvv vvv ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚ <<<โ€ โ€ โ€ โ€ โ€ &; &; &; { { { { } } } [ [ [ ] ] ] ~ ~ ' ' # # $ $ % % &โ€ โ€ '( ) * + ./ 0 1 2 3 4 5 6 7 8 9 ; <โ€œ= ?
De code probeert een veld met de naam 'full_name' toe te voegen aan de UserSerializer dat geen deel uitmaakt van het model. Het doet dit door de methode get_fields() te overschrijven en het veld volledige_naam toe te voegen aan het veldwoordenboek.

Serializers rusten framewoorden

Serializers zijn een klasse objecten die kunnen worden gebruikt om gegevens in een model te bewaren. Serializers kunnen worden gebruikt om gegevens om te zetten in een indeling die in een database kan worden opgeslagen.

Wat zijn haken in Django

Een hook is een functie in Django waarmee je code kunt uitvoeren op bepaalde punten in de verwerking van een verzoek. Hooks zijn handig voor het uitvoeren van aangepaste verwerking van inkomende verzoeken, of voor het afhandelen van specifieke situaties die zich kunnen voordoen.

Gerelateerde berichten:

Laat een bericht achter