{"id":4043,"date":"2018-02-09T03:50:11","date_gmt":"2018-02-09T03:50:11","guid":{"rendered":"https:\/\/www.botreetechnologies.com\/blog\/?p=4043"},"modified":"2020-12-10T18:35:26","modified_gmt":"2020-12-10T13:05:26","slug":"django-multiple-files-upload-on-aws-with-diff-content-types","status":"publish","type":"post","link":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/","title":{"rendered":"Django\u200a Framework -\u200aMultiple files upload on AWS with Different Content Types"},"content":{"rendered":"\n<p>Uploading a file in any application is pretty much a trivial process. I found a really nice blog over here<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><a href=\"https:\/\/simpleisbetterthancomplex.com\/tutorial\/2016\/08\/01\/how-to-upload-files-with-django.html\">How to Upload Files With Django<br>Updated at Aug 1, 2016: As suggested by@fapolloner, I&#8217;ve removed the manual file handling. Updated the example using&#8230;simpleisbetterthancomplex.com<\/a><\/p><\/blockquote>\n\n\n\n<p>But we had a more complex requirement, where there were various entities which required files to be associated with them as an attachments and that too of different types like video, audio or text. One obvious way is to create a separate relation for each of the file type. But we were looking for something more sophisticated.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Django ContentTypes<\/h2>\n\n\n\n<p>Django supports a special framework called&nbsp;contenttypes&nbsp;which allows us to include generic foreign keys in our model.<\/p>\n\n\n\n<p>A normal&nbsp;<a href=\"https:\/\/docs.djangoproject.com\/en\/2.0\/ref\/models\/fields\/#django.db.models.ForeignKey\">ForeignKey<\/a>&nbsp;can only &#8220;point to&#8221; one other model, which means that if the&nbsp;TaggedItem&nbsp;model used a <a href=\"https:\/\/docs.djangoproject.com\/en\/2.0\/ref\/models\/fields\/#django.db.models.ForeignKey\">ForeignKey<\/a>&nbsp;it would have to choose one and only one model to store tags for. The&nbsp;contenttypes&nbsp;application provides a special field type (GenericForeignKey) which works around this and allows the relationship to be with any model:<\/p>\n\n\n\n<p>Below is the example code for Models with&nbsp;contenttype<\/p>\n\n\n\n<p>There are three parts to setting up a&nbsp;<a href=\"https:\/\/docs.djangoproject.com\/en\/2.0\/ref\/contrib\/contenttypes\/#django.contrib.contenttypes.fields.GenericForeignKey\">GenericForeignKey<\/a>:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Give your model a&nbsp;<a href=\"https:\/\/docs.djangoproject.com\/en\/2.0\/ref\/models\/fields\/#django.db.models.ForeignKey\">ForeignKey<\/a>&nbsp;to&nbsp;<a href=\"https:\/\/docs.djangoproject.com\/en\/2.0\/ref\/contrib\/contenttypes\/#django.contrib.contenttypes.models.ContentType\">ContentType<\/a>. The usual name for this field is&nbsp;content_type.<\/li><li>Give your model a field that can store primary key values from the models you&#8217;ll be relating to. For most models, this means a&nbsp;<a href=\"https:\/\/docs.djangoproject.com\/en\/2.0\/ref\/models\/fields\/#django.db.models.PositiveIntegerField\">PositiveIntegerField<\/a>. The usual name for this field is&nbsp;object_id.<\/li><li>Give your model a&nbsp;<a href=\"https:\/\/docs.djangoproject.com\/en\/2.0\/ref\/contrib\/contenttypes\/#django.contrib.contenttypes.fields.GenericForeignKey\">GenericForeignKey<\/a>, and pass it the names of the two fields described above. If these fields are named&nbsp;content_type&nbsp;and&nbsp;object_id, you can omit this \u2013 those are the default field names&nbsp;<a href=\"https:\/\/docs.djangoproject.com\/en\/2.0\/ref\/contrib\/contenttypes\/#django.contrib.contenttypes.fields.GenericForeignKey\">GenericForeignKey<\/a>&nbsp;will look for.<\/li><\/ol>\n\n\n\n<p><script src=\"https:\/\/gist.github.com\/Nipun2016\/62f49627b41580c59f475e47e1a269d2.js\"><\/script><\/p>\n\n\n\n<p>For those new to Python&nbsp;attachment_upload&nbsp;in line number 10 is a callable which returns a path of the file location and internally called by&nbsp;model.FileField<\/p>\n\n\n\n<p>Below is the implementation of&nbsp;attachment_upload<\/p>\n\n\n\n<p><script src=\"https:\/\/gist.github.com\/Nipun2016\/3ce5a45c505012d7754c89fc221db6a8.js\"><\/script><\/p>\n\n\n\n<p>instance&nbsp;and&nbsp;filename&nbsp;are internally passed by&nbsp;FileField&nbsp;object.<\/p>\n\n\n\n<p>Saving the&nbsp;file<\/p>\n\n\n\n<p><script src=\"https:\/\/gist.github.com\/Nipun2016\/3990df99d9a649215a8950b2d396e9bb.js\"><\/script><\/p>\n\n\n\n<p>Retrieving the file<\/p>\n\n\n\n<p><script src=\"https:\/\/gist.github.com\/Nipun2016\/0d392ea66c428e85de3db71fceb16719.js\"><\/script><\/p>\n\n\n\n<p>We created a separate method for this purpose, all we need to do now is to pass the object of the model with which the file is associated as a parameter to this method and this method will return us the list of URLs of all the files.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.botreetechnologies.com\/django-development\" target=\"_blank\" rel=\"noopener noreferrer\">Click here for more details&#8230;<\/a><\/h3>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>At <a href=\"https:\/\/www.botreetechnologies.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">BoTree Technologies<\/a>, we build enterprise applications with our Django team of 20+ engineers.<\/p>\n\n\n\n<p>We also specialize in RPA, AI, Python, Ruby on Rails, JavaScript and ReactJS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.botreetechnologies.com\/contact\" target=\"_blank\" rel=\"noopener noreferrer\">Consulting is free<\/a> &#8211; let us help you grow!<\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Uploading a file in any application is pretty much a&#8230;<\/p>\n","protected":false},"author":12,"featured_media":14459,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[68,10],"tags":[],"class_list":["post-4043","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-django","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Django\u200a Web Framework -\u200a Multiple files upload on AWS<\/title>\n<meta name=\"description\" content=\"Uploading a file in any application is pretty much a trivial process. Read more about how to upload multiple file with different content types on AWS using Django\u200a Web Framework.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Django\u200a Web Framework -\u200a Multiple files upload on AWS\" \/>\n<meta property=\"og:description\" content=\"Uploading a file in any application is pretty much a trivial process. Read more about how to upload multiple file with different content types on AWS using Django\u200a Web Framework.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/\" \/>\n<meta property=\"og:site_name\" content=\"BoTree Technologies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BoTreeTechnologies\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-09T03:50:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-10T13:05:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/02\/django-multiple-files-upload-on-aws.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"852\" \/>\n\t<meta property=\"og:image:height\" content=\"479\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Nipun Brahmbhatt\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:site\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nipun Brahmbhatt\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/\"},\"author\":{\"name\":\"Nipun Brahmbhatt\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/8944ad04a5e0bffba6243cf8e02168f7\"},\"headline\":\"Django\u200a Framework -\u200aMultiple files upload on AWS with Different Content Types\",\"datePublished\":\"2018-02-09T03:50:11+00:00\",\"dateModified\":\"2020-12-10T13:05:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/\"},\"wordCount\":469,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/02\/django-multiple-files-upload-on-aws.jpg\",\"articleSection\":[\"Django\",\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/\",\"name\":\"Django\u200a Web Framework -\u200a Multiple files upload on AWS\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/02\/django-multiple-files-upload-on-aws.jpg\",\"datePublished\":\"2018-02-09T03:50:11+00:00\",\"dateModified\":\"2020-12-10T13:05:26+00:00\",\"author\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/8944ad04a5e0bffba6243cf8e02168f7\"},\"description\":\"Uploading a file in any application is pretty much a trivial process. Read more about how to upload multiple file with different content types on AWS using Django\u200a Web Framework.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#primaryimage\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/02\/django-multiple-files-upload-on-aws.jpg\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/02\/django-multiple-files-upload-on-aws.jpg\",\"width\":852,\"height\":479,\"caption\":\"Django\u200a Web Framework\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.botreetechnologies.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Django\u200a Framework -\u200aMultiple files upload on AWS with Different Content Types\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/\",\"name\":\"BoTree Technologies\",\"description\":\"Committed to inspire generation.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/8944ad04a5e0bffba6243cf8e02168f7\",\"name\":\"Nipun Brahmbhatt\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/nipun-brahmbhatt-150x150.png\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/nipun-brahmbhatt-150x150.png\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/nipun-brahmbhatt-150x150.png\",\"caption\":\"Nipun Brahmbhatt\"},\"description\":\"Nipun is a Python Team Lead and Machine Learning enthusiastic. He has also worked extensively on Android. He is always keen to explore the latest Machine Learning trends, tools and algorithms. He loves mentoring his colleagues in Python and Django.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Django\u200a Web Framework -\u200a Multiple files upload on AWS","description":"Uploading a file in any application is pretty much a trivial process. Read more about how to upload multiple file with different content types on AWS using Django\u200a Web Framework.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/","og_locale":"en_US","og_type":"article","og_title":"Django\u200a Web Framework -\u200a Multiple files upload on AWS","og_description":"Uploading a file in any application is pretty much a trivial process. Read more about how to upload multiple file with different content types on AWS using Django\u200a Web Framework.","og_url":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/","og_site_name":"BoTree Technologies","article_publisher":"https:\/\/www.facebook.com\/BoTreeTechnologies\/","article_published_time":"2018-02-09T03:50:11+00:00","article_modified_time":"2020-12-10T13:05:26+00:00","og_image":[{"width":852,"height":479,"url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/02\/django-multiple-files-upload-on-aws.jpg","type":"image\/jpeg"}],"author":"Nipun Brahmbhatt","twitter_card":"summary_large_image","twitter_creator":"@BoTreeTech","twitter_site":"@BoTreeTech","twitter_misc":{"Written by":"Nipun Brahmbhatt","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#article","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/"},"author":{"name":"Nipun Brahmbhatt","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/8944ad04a5e0bffba6243cf8e02168f7"},"headline":"Django\u200a Framework -\u200aMultiple files upload on AWS with Different Content Types","datePublished":"2018-02-09T03:50:11+00:00","dateModified":"2020-12-10T13:05:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/"},"wordCount":469,"commentCount":0,"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/02\/django-multiple-files-upload-on-aws.jpg","articleSection":["Django","Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/","url":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/","name":"Django\u200a Web Framework -\u200a Multiple files upload on AWS","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#primaryimage"},"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/02\/django-multiple-files-upload-on-aws.jpg","datePublished":"2018-02-09T03:50:11+00:00","dateModified":"2020-12-10T13:05:26+00:00","author":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/8944ad04a5e0bffba6243cf8e02168f7"},"description":"Uploading a file in any application is pretty much a trivial process. Read more about how to upload multiple file with different content types on AWS using Django\u200a Web Framework.","breadcrumb":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#primaryimage","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/02\/django-multiple-files-upload-on-aws.jpg","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/02\/django-multiple-files-upload-on-aws.jpg","width":852,"height":479,"caption":"Django\u200a Web Framework"},{"@type":"BreadcrumbList","@id":"https:\/\/www.botreetechnologies.com\/blog\/django-multiple-files-upload-on-aws-with-diff-content-types\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.botreetechnologies.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Django\u200a Framework -\u200aMultiple files upload on AWS with Different Content Types"}]},{"@type":"WebSite","@id":"https:\/\/www.botreetechnologies.com\/blog\/#website","url":"https:\/\/www.botreetechnologies.com\/blog\/","name":"BoTree Technologies","description":"Committed to inspire generation.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/8944ad04a5e0bffba6243cf8e02168f7","name":"Nipun Brahmbhatt","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/nipun-brahmbhatt-150x150.png","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/nipun-brahmbhatt-150x150.png","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/nipun-brahmbhatt-150x150.png","caption":"Nipun Brahmbhatt"},"description":"Nipun is a Python Team Lead and Machine Learning enthusiastic. He has also worked extensively on Android. He is always keen to explore the latest Machine Learning trends, tools and algorithms. He loves mentoring his colleagues in Python and Django."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/4043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=4043"}],"version-history":[{"count":1,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/4043\/revisions"}],"predecessor-version":[{"id":14461,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/4043\/revisions\/14461"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media\/14459"}],"wp:attachment":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=4043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=4043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=4043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}