Решено: Како користити %22то_репресентатион%22 куку за дјанго рест серијализаторе

Главни проблем је што закачивање %22то_репресентатион%22 није имплементирано у дјанго рест серијализаторима.

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                        { | } ~ ⌂ ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£áíóúñѪº¿®¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞═══════════════════ ══ ══ ══ ══ ══ ══ ══ ─ ─ ─ ─ ─ ─ ─ ─ ┤ ├─ │ ├─ │ ├─ │ ├─ │ ├─ │ ├─ │ ├─ │ ├─ │ ├─ │ ├─ ├──────────── ├──────────────────────── ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ██ ██ ██ ██ ██ ██ ██ ███▀▀▀██▄▄▄██████▀▀▀██████▄▄██████████████████████████████████████████████▀▀██████▄▄██████▀▀██████▄

▄██████████████████████████████████████▀▀██████▄▄█ █████▀▀██████▄▄█████████ ██ ██ ██ ██ ██ ██ ▀██ ▄██▀ ▀██ █▀ ▄██▀ ▀▌▐▌▐▌▐▌│││││║║║║╔═════════════════ ▀▌▐▌▐▌▐▌│││││║║║║╔═════════════════ ══ ══ ══ ─ ─ ─ ┤ ├─ │ ├─ │ ├─ │ ├─ │ ├─ │ ├─ │ ├── │ ├─── │ ├──────│ ├───────│ ├────── ▒▒▓▓▓▓▒▒▒▒░──────░▒░░░░░░░░░░░▒─────░░░░░░░░░░▒░ ☺/ ☻/ ☺/ ☻/ ☺/ | |` `| |` `| |` `| |` `| |` `| |, ,, ,, ,, ,, ,,_,_,,,,,_,_,,,,,,_,_,,,,,_,,___,,, ,,,,,___,,,,__ __ _ _ _ __ ___ (_) ___ ___ _____ _____ _ __ ___ _ _ ___ __ __ ______ ______ ______ ______ / / / \ \ \ \ '__/ _ \| |/| / __|| ____|| ____|| ____|| ____|| // ||___ ||___ ||___ ||___ || //\//\//\//\//\//\\///\\///\\///\\///\\/\\\\\\//// \\\\////\\\\////\\\\////\\\\////\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////// ///////////////////////////////////////////////// ///////////////////////////////////////////////// ////////////////////////////////\\\\\\////////// ///////////////////////////////////////////////// ///////////////////////////////////////////////// ///////////////////////////////////////////////// ///////////////////////////////////////////////// ///////////////////////////////////////////////// ///////////////////////////////////////////////// ////////////////////^ ^ ^ ^ ^ ^ ^ ^ ^^^^ ввв ввв ввв ввв ввв^^^^^^^^^^^^^ ^^^^^^ <<<<<<<<>>>>>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;::::::::::::::::::::::::::::::::::::::””” ””””””'”””””””””””””$$$$$$$$$$$$$$$$$$((((((((())) )))))))))))))))|||||||||||||||||||{{{{{{{{{}}}}}}}} }}}}~~~~~~~~~~~~~~“““““`,~~~.~“~“~~.~“~“~~.~“~“ ~~.~“~“~~.~~~~~——–…———…——–…——–…——–………———…———………—— —………——————…………..—————–………… ..—————–…………..—————————————……………………………………………………….—————— —————-……………………………………………………….—————————————……………………………………………… ……….————————————————————————————————————————————— ———————————————————————————————————————……………………………… ……………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………. . . . . . .. .. .. .. .... .... .... .... … … … … ……… ……………….. .......... .......... …………… …………….. .......... .......... …… …… …… …… …… …… ……………… ……………… ……………… ……………… ………….. ............ .. ............ .. ............ .. ...................... ...................... ...................... ...................... …………… .. …………… .. …………… .. …………… .. .......... .......... .......... .......... ……… ……… ……… ……… ….. ... .. ... .. ... .. … … … … . . . .) 😀 😀 😀 😀 😀 😀 😀 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 😉 ^^ ^^ ^^ ^^ ^^ ^^ ^^ ВВВ ВВВ ВВВ ВВВ 🙂 🙂 🙂 🙂 🙂 🙂 <<<” ” ” ” ” &; &; &; { { { {} } } [ [ [ ] ] ] ~ ~ ' ' # # $ $ % % &” ” '( ) * + ./ 0 1 2 3 4 5 6 7 8 9 ; <“= ?
Код покушава да дода поље под називом 'фулл_наме' у УсерСериализер које није део модела. То ради тако што заобилази методу гет_фиелдс() и додаје поље фулл_наме у речник поља.

Сериализатори остају оквири

Сериализатори су класа објеката који се могу користити за задржавање података у моделу. Сериализатори се могу користити за трансформацију података у формат који се може чувати у бази података.

Шта су куке у Дјангу

Хоок је функција у Дјангу која вам омогућава да покренете код у одређеним тачкама обраде захтева. Хоокс су корисне за обављање прилагођене обраде долазних захтева или за руковање специфичним ситуацијама које се могу појавити.

Релатед постс:

Оставите коментар