Django-rest-framework: рдмреНрд░рд╛рдЙрдЬрд┐рдВрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдПрдкреАрдЖрдИ рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рдПрд╕реНрдкрд░рд┐рдВрдЧ (рдПрдореНрдкрд░рд╕реЗрдВрдб)ред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдЬреВрди 2014  ┬╖  26рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: encode/django-rest-framework

рдЬрдм рдмрдЪ рдЧрдП рдЪрд░рд┐рддреНрд░ рд╡рд╛рд▓реЗ URL (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдФрд░ рдПрдореНрдкрд░рд╕реЗрдВрдб) рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдиреЗ рдпреЛрдЧреНрдп API рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ href рдореЗрдВ рдпрд╣ рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдПрдореНрдкрд░рд╕реЗрдВрдб рдкрд░ рд▓рд╛рдЧреВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ URL:
http: // localhost : 8000 / рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ /? param1 = рд╣рд╛рдБ +% 26 + рдирд╣реАрдВ рдФрд░ param2 = рдХреБрдЫ

рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
http: // localhost : 8000 / endpoint /? param1 = Yes + рдФрд░ + рдирд╣реАрдВ рдФрд░ param2 = рдХреБрдЫ

URL рдПрдХ рддрддреНрд╡ рдХреЗ рдорд╛рди рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ... рдпрд╣ рдХреЗрд╡рд▓ href рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдЕрднреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ :)

рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░реЗрдВ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдмреЗрд╣рддрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ! ЁЯСН

рд╕рднреА 26 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдзреАрдореА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛ред
рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдкрд╛рджрди рд╣реИ рдЬреЛ рдЕрд▓рдЧ рд╣реИ рдпрд╛ рд╕реНрд░реЛрдд HTML рд╣реА рдмрд┐рдирд╛ рдкрдврд╝реЗ рд╣реИ?

рд╣рд╛рдп рдЯреЙрдо, HTML рдореЗрдВ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦрд╛:

<a href="http://localhost:8000/endpoint/?param1=Yes+&+No&param2=something">http://localhost:8000/endpoint/?param1=Yes+%26+No&param2=something</a>

рдЧреЛрддреНрдЪрд╛ рдзрдиреНрдпрд╡рд╛рдж - рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдпрд╣ рдХреЗрд╡рд▓ BrowsableAPIRendererer рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рдВрднрд╡рддрдГ рдкреВрд░реНрдг рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рднреА рдареАрдХ рд╣реЛрдЧрд╛ред

рдЬрд╝рд░реВрд░, рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЕрдм рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ ... рдХреНрдпрд╛ рдЙрдЪрд┐рдд рд╕реНрдерд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ RendererEndToEndTests рд╣реЛрдЧрд╛__Orenderers.py?

рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред

рдпрд╣ Django рдХреЗ smart_urlquote рд╣реИ рдЬрд┐рд╕реЗ DRF рдХреЗ urlize_quoted_links рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдиреЗ рдпреЛрдЧреНрдп API рдХреЗ рднреАрддрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред I _think_ рд▓рд┐рдВрдХ рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рд▓рд┐рдВрдХ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╕реНрд╡рдпрдВ рдПрдХ Django рднрд╛рдЧрдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╡рд╣рд╛рдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред

smart_urlquote unquote quote рд╕реЗ рдкрд╣рд▓реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рд╣реИред рдпрд╣ https://github.com/django/django/commit/b70c371fc1f18ea0c43b503122df3f311afc7105 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдФрд░ Django 1.5+ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд▓рд╛рдпрд╛ рдЧрдпрд╛ред

рддреЛ рдХреНрдпрд╛ рд╣рдореЗрдВ рдкрд░рд╡рд╛рд╣ рд╣реИ рдХрд┐ рдпрд╣ _strictly_ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЧреНрд░рд╛рд╣рдХ рджреЗрдЦреЗрдВрдЧреЗ, рдпрд╛ рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ?
рд╢рдмреНрджрд╢рдГ рдпрд╣ рдЕрднреА рднреА рд╕рд╣реА рд╣реИред

рдпрд╣ рдмрдЧрд▓рд╛рдЗрди рд╕реЗ рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреБрд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмреЙрд░реНрдбрд░рд▓рд╛рдЗрди рд╣реИред

DjangoCon рдорд╛рд░реНрдЧрджрд░реНрд╢рди - рдЗрд╕ рдЯрд┐рдХрдЯ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕рдореАрдХреНрд╖рд╛ - рдЖрдк рдХрд┐рд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпрд╛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ?

рдореИрдВ django-con рд╕реНрдкреНрд░рд┐рдВрдЯ рдореЗрдВ рд╣реВрдВ рдФрд░ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдпреЛрдЧрджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ DRF рдХреЗ рд▓рд┐рдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдпрд╛ irc рдкрд░ рдмрдЧ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реВрдВред

рдЧреЛрддреНрдЪрд╛ - рдЕрдЧрд░ рдореИрдВ рд╡рд╣рд╛рдВ рдЙрддреНрддрд░рджрд╛рдпреА рдирд╣реАрдВ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдЖрдИрдЖрд░рд╕реА, рдпрд╛ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдФрд░ рдкреНрд░рдЧрддрд┐ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╕рдорд╛рдкрдиред
рдХрд┐рд╕реА рдХреЗ рджреЛрдмрд╛рд░рд╛ рдЗрд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реАред

@tomchristie рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдорд╛рдореВрд▓реА рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдПрдХ рдмрдЧ рд╣реИред рдпрджрд┐ рдЖрдк рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЧрд▓рдд URL рдкрд░ рдЬрд╛рддрд╛ рд╣реИред рд╡реИрдз рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреИрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред

рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛрдЧрд╛ рддрдм рдореИрдВ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░реВрдВрдЧрд╛ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛ - рдХрд┐ URL рдЧрд▓рдд рдирд╣реАрдВ рдерд╛, рдмрд╕ рдЗрд╕рдиреЗ рд▓рд┐рдВрдХ рдХреЛ рдЕрдирд╕реИрдкреНрдб рд╕реНрдЯрд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛, рдХреНрдпрд╛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЧрд▓рдд рд╕рдордЭрд╛ рд╣реИ?

рдЕрд░реНрдерд╛рддред cleanup рдЯреИрдЧ рдХрд╛ рдХрд╛рд░рдг, рдпрд╣ рдПрдХ рдХреЙрд╕реНрдореЗрдЯрд┐рдХ рдореБрджреНрджрд╛ рд╣реИ?

рдУрд╣ рдореИрдВ рд╕рдордЭрд╛ред рд╣рд╛рдБ, рдпрд╣ рд╕рд╣реА рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдореВрд▓реНрдп рдХреЗ рдмрдЬрд╛рдп href рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдорд╛рди рджреЛрдиреЛрдВ рд╣реА рдмрдЪ рд░рд╣реЗ рд╣реИрдВред

рдРрд╕реЗ рдорд╣рд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, btw!

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдПрдХ рдмрд╛рд░ рдФрд░ :)

рд╣рд╛рдБ, рдпрд╣ рд╕рд╣реА рд╣реИред

рд╕рд╣реА рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХреЙрд╕реНрдореЗрдЯрд┐рдХ рдореБрджреНрджрд╛ рд╣реИ, рдпрд╛ рд╕рд╣реА рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЧрд▓рдд рд╕рдордЭрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ? :)

рд╕рд╣реА рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИред :)

рд╕рдорд╛рдкрди, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ https://code.djangoproject.com/ticket/22267 рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдЕрднреА рддрдХ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣рдореЗрдВ 'urlize' рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реБрдП рдХреБрдЫ рдФрд░ рдЦреАрдВрдЪрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ? рдпрд╣ рднреА рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╣рд╛рди! рд╡рд╛рд╣!

рдпрд╣ 1.7.1, рдпрд╛ 1.7.2 рдпрд╛ 1.8 рдореЗрдВ рдирд┐рдпрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ? рдпрд╣ рд╡рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ django 1.7.1 рдХреЗ рд╕рд╛рде рджреЗрдЦрддрд╛ рд╣реВрдВ:

>>> from django.utils.html import smart_urlquote, escape
>>> escape(smart_urlquote('http://qwerty.com'))
u'http://qwerty.com'
>>> escape(smart_urlquote('http://qwerty.com?blah=Yes+%26+No'))
u'http://qwerty.com?blah=Yes+&amp;+No'

.. рдФрд░ django рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдХреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░рдореБрдЦ:

>>> from django.utils.html import smart_urlquote, escape
>>> escape(smart_urlquote('http://qwerty.com?blah=Yes+%26+No'))
u'http://qwerty.com?blah=Yes+%26+No'

рдХреНрдпрд╛ urlize_quoted_links рдореВрд▓ рд░реВрдк рд╕реЗ django.utils.html.urlize рдХреА рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдкреНрд░рддрд┐ https://github.com/django/django/blob/master/django/utils/html.py#L255 -L352 рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рд╛рдВ, рдЗрд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓ " http://example.org " рд╢реИрд▓реА рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдПрдХрд▓ рдпрд╛ рджреЛрд╣рд░реЗ рдЙрджреНрдзрд░рдг рдЙрдиреНрд╣реЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрд╕рд╛рди рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдмрд╣реБрдд рдЕрдВрддрд░ рд╣реИ рдЬреЛ django рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдХреНрд░рдорд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд╛рд░рдг рд╕рдВрднрд╡ рд╣реИ, рдЬрдмрдХрд┐ рд╣рдорд╛рд░рд╛ рд╡рд╣реА рд░рд╣рд╛ рд╣реИред

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдЯрд┐рдХрдЯ рд╣реИред

рдЗрд╕ рдкрд░ рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рдЧрд┐рд░рд╛рдирд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдВ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ 3.0.1 рдЖрдЗрдЯрдо рд╣реИрдВред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ # 2014 рд╕реЗ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рд╛ рдорд╛рдорд▓реЗ рдХреЛ рдЦреАрдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реИ

рдпрд╣ рдЯрд┐рдкреНрдкрдгреА https://github.com/tomchristie/django-rest-framework/pull/2014#issuecomment -61525348 рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрдкрд╕реНрдЯреНрд░реАрдо Django рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рдмрдирд╛ рд░рд╣реЗрдЧрд╛ рддреЛ рдлрд┐рд░ рд╕реЗ рдЦреБрд▓ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВ рдЕрднреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ :)

рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░реЗрдВ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдмреЗрд╣рддрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ! ЁЯСН

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

MadWombat picture MadWombat  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hemanthsp picture hemanthsp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jpocentek picture jpocentek  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rjdp picture rjdp  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

snbuback picture snbuback  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ