Zgjidhet: Si të përdoret fiksimi %22to_representation%22 për serializuesit e django rest

Problemi kryesor është se grepa %22to_representation%22 nuk zbatohet në serializuesit e django rest.

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

▄██████████████████████████████████████▀▀██████▄▄█ █████▀▀██████▄▄█████████ ██ ██ ██ ██ ██ ██ ██ ▀██ ▄██▀ ▀██ ▄█ █▀ ▀██ ▄██▀ ▀▌▐▌▐▌▐▌│││││║║║║╔═════════════════ ══ ══ ══ ─ ❑ ┤ ├ ├ │ ├ │ ├ │ ├ │ ├ │ ├ ├ │ ├ │ ├ │ ├ ├ ├ ON ▒▒▓▓▓▓▒▒▒▒░ hapësin ☺/ ☻/ ☺/ ☻/ ☺/ | |` `| |` `| |` `| |` `| |` `| |, ,, ,, ,,, ,,,,_,,,,,,,,,,,,,,,,,,,,,,,,, " |/| / __|| ____|| ____|| ____|| ____|| // ||___ ||___ ||___ ||___ || //\//\//\//\//\//\\///\\///\\///\\///\\/\\\\\///// \\\\////\\\\////\\\\////\\\\////\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// //////////////////////////////\\\\\/////////////////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// ////////////////////^ ^ ^ ^ ^ ^ ^ ^ ^^^^ vvv vvv vvv vvv vvv^^^^^^^^^^^^^ ^^^^^^ <<<<<<<>>>>>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;::::::::::::::::::::::::::::::""" ”””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””“ ))))))))))))))|||||||||||||||||||{{{{{{{{}}}}}}} }}}}~~~~~~~~~~~~~~~~““““““`,~~~.~“~“~~.~“~“~~.~“~“ ~~.~“~“~~.~~~~~~——–…——–…——–…——–…——–………———…———………—— —………—————–……………..—————–…………… ..—————–……………..———————————-……………………………………………….——————— —————-…………………………………………………….———————————-…………………………………………… ……….——————————————————————————————————————————— —————————————————————————————————————–………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… ……………………………………………………………………………. . . . . . .. .. .. .. .... .... .... .... …………………………………….. .......... .......... …………………………….. .......... .......... …………………………………………………………………………………………………………….. ............ .. ............ .. ............ .. ...................... ...................... ...................... ...................... ............... .. ............... .. ............... .. ............... .. .......... .......... .......... .......... …………………………………….. … .. … .. … .. ……………. . . .) 😀 😀 😀 😀 😀 😀 😀 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 😉 😉 😉 😉 😉 😉 ^^ ^^ ^^ ^^ ^^ ^^ vvv vvv vvv 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 <<<” ” ” ” ” &; &; &; { { { { } } } [ [ [ [ ] ] ] ~ ~ ' ' # # $ $ % % &” ” '( ) * + ./ 0 1 2 3 4 5 6 7 8 9 ; <“= ?
Kodi po përpiqet të shtojë një fushë të quajtur 'emri i plotë' në UserSerializer që nuk është pjesë e modelit. Këtë e bën duke anashkaluar metodën get_fields() dhe duke shtuar fushën full_name në fjalorin e fushave.

Serializuesit pjesa tjetër e fjalëve korniza

Serializuesit janë një klasë objektesh që mund të përdoren për të ruajtur të dhënat në një model. Serializuesit mund të përdoren për të transformuar të dhënat në një format që mund të ruhet në një bazë të dhënash.

Çfarë janë grepa në Django

Një goditje është një funksion në Django që ju lejon të ekzekutoni kodin në pika të caktuara në përpunimin e një kërkese. Hooks janë të dobishëm për kryerjen e përpunimit të personalizuar për kërkesat hyrëse, ose për trajtimin e situatave specifike që mund të lindin.

Mesazhe të ngjashme:

Lini një koment