@@ -371,12 +371,12 @@ <h1 class="title">Pydantic</h1>
371371!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
372372< p > < a class ="reference external image-reference " href ="https://odoo-community.org/page/development-status "> < img alt ="Beta " src ="https://img.shields.io/badge/maturity-Beta-yellow.png " /> </ a > < a class ="reference external image-reference " href ="http://www.gnu.org/licenses/lgpl-3.0-standalone.html "> < img alt ="License: LGPL-3 " src ="https://img.shields.io/badge/licence-LGPL--3-blue.png " /> </ a > < a class ="reference external image-reference " href ="https://github.com/OCA/rest-framework/tree/17.0/pydantic "> < img alt ="OCA/rest-framework " src ="https://img.shields.io/badge/github-OCA%2Frest--framework-lightgray.png?logo=github " /> </ a > < a class ="reference external image-reference " href ="https://translation.odoo-community.org/projects/rest-framework-17-0/rest-framework-17-0-pydantic "> < img alt ="Translate me on Weblate " src ="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png " /> </ a > < a class ="reference external image-reference " href ="https://runboat.odoo-community.org/builds?repo=OCA/rest-framework&target_branch=17.0 "> < img alt ="Try me on Runboat " src ="https://img.shields.io/badge/runboat-Try%20me-875A7B.png " /> </ a > </ p >
373373< p > This addon provides a utility method that can be used to map odoo record
374- to a < a class ="reference external " href ="https://pydantic- docs.helpmanual.io / "> Pydantic model</ a > .</ p >
374+ to a < a class ="reference external " href ="https://docs.pydantic.dev / "> Pydantic model (>= v2) </ a > .</ p >
375375< p > If you need to make your Pydantic models extendable at runtime, takes a
376376look at the python package
377377< a class ="reference external " href ="https://pypi.org/project/extendable_pydantic/ "> extendable-pydantic</ a >
378- and the odoo addon
379- < a class =" reference external " href =" https://github.com/acsone/odoo-addon-extendable " > extendable</ a > </ p >
378+ and the < a class =" reference external " href =" https://pypi.org/project/odoo-addon-extendable " > odoo addon
379+ extendable</ a > </ p >
380380< p > < strong > Table of contents</ strong > </ p >
381381< div class ="contents local topic " id ="contents ">
382382< ul class ="simple ">
@@ -395,34 +395,25 @@ <h1 class="title">Pydantic</h1>
395395< h1 > < a class ="toc-backref " href ="#toc-entry-1 "> Usage</ a > </ h1 >
396396< p > To support pydantic models that map to Odoo models, Pydantic model
397397instances can be created from arbitrary odoo model instances by mapping
398- fields from odoo models to fields defined by the pydantic model. To ease
399- the mapping, the addon provide a utility class
400- odoo.addons.pydantic.utils.GenericOdooGetter. </ p >
398+ fields from odoo models to fields defined by the pydantic model.</ p >
399+ < p > To ease the mapping, the addon provide an utility class (using
400+ < tt class =" docutils literal " > pydantic>2.0 </ tt > ) < tt class =" docutils literal " > odoo.addons.pydantic.utils.PydanticOdooBaseModel </ tt > : </ p >
401401< pre class ="code python literal-block ">
402- < span class ="kn "> import</ span > < span class ="nn "> pydantic</ span > < span class ="w ">
403- </ span > < span class ="kn "> from</ span > < span class ="nn "> odoo.addons.pydantic</ span > < span class ="kn "> import</ span > < span class ="n "> utils</ span > < span class ="w ">
402+ < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> odoo.addons.pydantic.utils</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> PydanticOdooBaseModel</ span > < span class ="w ">
404403
405- </ span > < span class ="k "> class</ span > < span class ="nc "> Group</ span > < span class ="p "> (</ span > < span class ="n "> pydantic</ span > < span class ="o "> .</ span > < span class ="n "> BaseModel</ span > < span class ="p "> ):</ span > < span class ="w ">
406- </ span > < span class ="n "> name</ span > < span class ="p "> :</ span > < span class ="nb "> str</ span > < span class ="w ">
407404
408- </ span > < span class ="k "> class</ span > < span class ="nc "> Config</ span > < span class ="p "> :</ span > < span class ="w ">
409- </ span > < span class ="n "> orm_mode</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="w ">
410- </ span > < span class ="n "> getter_dict</ span > < span class ="o "> =</ span > < span class ="n "> utils</ span > < span class ="o "> .</ span > < span class ="n "> GenericOdooGetter</ span > < span class ="w ">
405+ </ span > < span class ="k "> class</ span > < span class ="w "> </ span > < span class ="nc "> Group</ span > < span class ="p "> (</ span > < span class ="n "> PydanticOdooBaseModel</ span > < span class ="p "> ):</ span > < span class ="w ">
406+ </ span > < span class ="n "> name</ span > < span class ="p "> :</ span > < span class ="nb "> str</ span > < span class ="w ">
411407
412- </ span > < span class ="k "> class</ span > < span class ="nc " > UserInfo </ span > < span class =" p " > ( </ span > < span class ="n " > pydantic </ span > < span class ="o " > . </ span > < span class ="n "> BaseModel </ span > < span class ="p "> ):</ span > < span class ="w ">
408+ </ span > < span class ="k "> class</ span > < span class ="w " > </ span > < span class ="nc " > UserInfo </ span > < span class ="p " > ( </ span > < span class ="n "> PydanticOdooBaseModel </ span > < span class ="p "> ):</ span > < span class ="w ">
413409</ span > < span class ="n "> name</ span > < span class ="p "> :</ span > < span class ="nb "> str</ span > < span class ="w ">
414410</ span > < span class ="n "> groups</ span > < span class ="p "> :</ span > < span class ="n "> List</ span > < span class ="p "> [</ span > < span class ="n "> Group</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="n "> pydantic</ span > < span class ="o "> .</ span > < span class ="n "> Field</ span > < span class ="p "> (</ span > < span class ="n "> alias</ span > < span class ="o "> =</ span > < span class ="s2 "> "groups_id"</ span > < span class ="p "> )</ span > < span class ="w ">
415411
416- </ span > < span class ="k "> class</ span > < span class ="nc "> Config</ span > < span class ="p "> :</ span > < span class ="w ">
417- </ span > < span class ="n "> orm_mode</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="w ">
418- </ span > < span class ="n "> getter_dict</ span > < span class ="o "> =</ span > < span class ="n "> utils</ span > < span class ="o "> .</ span > < span class ="n "> GenericOdooGetter</ span > < span class ="w ">
419-
420412</ span > < span class ="n "> user</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> env</ span > < span class ="o "> .</ span > < span class ="n "> user</ span > < span class ="w ">
421413</ span > < span class ="n "> user_info</ span > < span class ="o "> =</ span > < span class ="n "> UserInfo</ span > < span class ="o "> .</ span > < span class ="n "> from_orm</ span > < span class ="p "> (</ span > < span class ="n "> user</ span > < span class ="p "> )</ span >
422414</ pre >
423- < p > See the official < a class ="reference external " href ="https://pydantic-docs.helpmanual.io/ "> Pydantic
424- documentation</ a > to discover all
425- the available functionalities.</ p >
415+ < p > See the official < a class ="reference external " href ="https://docs.pydantic.dev/ "> Pydantic documentation</ a >
416+ to discover all the available functionalities.</ p >
426417</ div >
427418< div class ="section " id ="known-issues-roadmap ">
428419< h1 > < a class ="toc-backref " href ="#toc-entry-2 "> Known issues / Roadmap</ a > </ h1 >
@@ -453,6 +444,7 @@ <h2><a class="toc-backref" href="#toc-entry-6">Contributors</a></h2>
453444< ul class ="simple ">
454445< li > Laurent Mignon << a class ="reference external " href ="mailto:laurent.mignon@acsone.eu "> laurent.mignon@acsone.eu</ a > ></ li >
455446< li > Tris Doan << a class ="reference external " href ="mailto:tridm@trobz.com "> tridm@trobz.com</ a > ></ li >
447+ < li > Pierre Verkest << a class ="reference external " href ="mailto:pierre@verkest.fr "> pierre@verkest.fr</ a > ></ li >
456448</ ul >
457449</ div >
458450< div class ="section " id ="maintainers ">
0 commit comments