{"id":4687,"date":"2025-01-26T07:13:36","date_gmt":"2025-01-25T22:13:36","guid":{"rendered":"https:\/\/secondlife.lol\/?p=4687"},"modified":"2025-01-26T19:18:20","modified_gmt":"2025-01-26T10:18:20","slug":"django-models-basics-database-structure-guide","status":"publish","type":"post","link":"https:\/\/secondlife.lol\/en\/django-models-basics-database-structure-guide\/","title":{"rendered":"Django Models Fundamentals: A complete guide to understanding database structure with ease"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Hello, everyone! Today we're going to learn the basics of Django models. Let's start with the first <a href=\"https:\/\/www.djangoproject.com\/\" target=\"_blank\" rel=\"noopener\">Django<\/a>the concept of models seemed a bit foreign and intimidating to you. I know it did to me. But don't worry, this post will give you a thorough understanding of the basics of Django models and database structure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Django models are at the heart of database design. They're a magical tool that lets you manipulate databases with Python code without the need for complex SQL queries. In this post, we'll cover everything you need to know about Django models, from basic concepts to real-world code examples. So, let's get started!<\/p>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title-wrap{color:var(--global-palette2, #2B6CB0);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{color:var(--global-palette2, #2B6CB0);font-size:28px;font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap .kb-table-of-content-list{color:var(--global-palette1, #3182CE);line-height:2em;font-weight:regular;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:0px;margin-bottom:0px;margin-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap .kb-table-of-content-list .kb-table-of-contents__entry:hover{color:var(--global-palette6, #718096);}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);}}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{font-size:28px;}}@media all and (max-width: 767px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{font-size:28px;}}<\/style>\n\n\n<h2 class=\"wp-block-heading\">What are Django Models?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Django models store the database structure in a <a href=\"https:\/\/secondlife.lol\/en\/mastering-python-classes-for-beginners\/\" data-type=\"post\" data-id=\"3597\">Python Classes<\/a>Each model corresponds to a table in the database, and the properties of the model become fields in the table. Django uses this model to abstract database operations, making it easier for developers to work with data.<\/p>\n\n\n<style>.wp-block-kadence-column.kb-section-dir-horizontal > .kt-inside-inner-col > .kt-info-box4687_4c0615-a4 .kt-blocks-info-box-link-wrap{max-width:unset;}.kt-info-box4687_4c0615-a4 .kt-blocks-info-box-link-wrap{border-top:5px solid var(--global-palette7, #eeeeee);border-right:5px solid var(--global-palette7, #eeeeee);border-bottom:5px solid var(--global-palette7, #eeeeee);border-left:5px solid var(--global-palette7, #eeeeee);background:#ffffff;padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);margin-top:50px;}.kt-info-box4687_4c0615-a4 .kadence-info-box-icon-container .kt-info-svg-icon, .kt-info-box4687_4c0615-a4 .kt-info-svg-icon-flip, .kt-info-box4687_4c0615-a4 .kt-blocks-info-box-number{font-size:50px;}.kt-info-box4687_4c0615-a4 .kt-blocks-info-box-media{background:#ffffff;border-color:var(--global-palette7, #eeeeee);border-top-width:5px;border-right-width:5px;border-bottom-width:5px;border-left-width:5px;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px;}.kt-info-box4687_4c0615-a4 .kt-blocks-info-box-media-container{margin-top:-75px;margin-right:0px;margin-bottom:20px;margin-left:0px;}.kt-info-box4687_4c0615-a4 .kt-infobox-textcontent h5.kt-blocks-info-box-title{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:5px;margin-right:0px;margin-bottom:10px;margin-left:0px;}.kt-info-box4687_4c0615-a4 .kt-infobox-textcontent .kt-blocks-info-box-text{color:var(--global-palette5, #4A5568);}.kt-info-box4687_4c0615-a4 .kt-blocks-info-box-learnmore{background:transparent;border-width:0px 0px 0px 0px;padding-top:4px;padding-right:8px;padding-bottom:4px;padding-left:8px;margin-top:10px;margin-right:0px;margin-bottom:10px;margin-left:0px;}@media all and (max-width: 1024px){.kt-info-box4687_4c0615-a4 .kt-blocks-info-box-link-wrap{border-top:5px solid var(--global-palette7, #eeeeee);border-right:5px solid var(--global-palette7, #eeeeee);border-bottom:5px solid var(--global-palette7, #eeeeee);border-left:5px solid var(--global-palette7, #eeeeee);}}@media all and (max-width: 767px){.kt-info-box4687_4c0615-a4 .kt-blocks-info-box-link-wrap{border-top:5px solid var(--global-palette7, #eeeeee);border-right:5px solid var(--global-palette7, #eeeeee);border-bottom:5px solid var(--global-palette7, #eeeeee);border-left:5px solid var(--global-palette7, #eeeeee);}}<\/style>\n<div class=\"wp-block-kadence-infobox kt-info-box4687_4c0615-a4\"><span class=\"kt-blocks-info-box-link-wrap info-box-link kt-blocks-info-box-media-align-top kt-info-halign-left\"><div class=\"kt-blocks-info-box-media-container\"><div class=\"kt-blocks-info-box-media kt-info-media-animate-none\"><div class=\"kadence-info-box-icon-container kt-info-icon-animate-none\"><div class=\"kadence-info-box-icon-inner-container\"><span class=\"kb-svg-icon-wrap kb-svg-icon-fe_bookOpen kt-info-svg-icon\"><svg viewbox=\"0 0 24 24\"  fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"  aria-hidden=\"true\"><path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"\/><path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"\/><\/svg><\/span><\/div><\/div><\/div><\/div><div class=\"kt-infobox-textcontent\"><h5 class=\"kt-blocks-info-box-title\">Database structure (tables and fields)<\/h5><p class=\"kt-blocks-info-box-text\"><br><strong>Database tables<\/strong>is an Excel file's <strong>One sheet<\/strong>for example. An Excel sheet has multiple rows (rows) and columns (columns), right? Similarly, a table organizes data into rows (records) and columns (fields).<br>  - Row: Represents a single piece of data. Example.) In the Customers table, a row represents one customer's information<br>  - Column: Represents an attribute of the data. For example.) Customer's name, email, and phone number<br><br><strong>Fields<\/strong>is the <strong>Each column<\/strong>This means that one field can be used to represent the <strong>Properties<\/strong>or <strong>Features<\/strong>in the table. For example, if you're creating a customer table, you'll need fields like ID, Name, Email, Phone, etc. <\/p><\/div><\/span><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Django Models Basics: Creating your first model<\/h2>\n\n\n<style>.kb-image4687_6ce229-63 .kb-image-has-overlay:after{opacity:0.3;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;}.kb-image4687_6ce229-63 img.kb-img, .kb-image4687_6ce229-63 .kb-img img{border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}<\/style>\n<div class=\"wp-block-kadence-image kb-image4687_6ce229-63\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"845\" height=\"398\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-3.jpg\" alt=\"Django models \uae30\ucd08 \ucc38\uace0 \uc774\ubbf8\uc9c0\" class=\"kb-img wp-image-4694\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-3.jpg 845w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-3-300x141.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-3-600x283.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-3-768x362.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-3-18x8.jpg 18w\" sizes=\"(max-width: 845px) 100vw, 845px\" \/><figcaption>(Django models basics reference image - Classes and tables )<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Now, let's actually create a Django model. Take a look at the code below, which creates a model called 'Book' to create a structure for storing and managing book information (chapters title, author, publication date, book price)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from django.db import models\n\nclass Book(models.Model):\n    title = models.CharField(max_length=200)\n    author = models.CharField(max_length=100)\n    publication_date = models.DateField()\n    price = models.DecimalField(max_digits=6, decimal_places=2)\n\n    def __str__(self):\n        return self.title<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Code commentary<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><code>from django.db import models<\/code>: imports to use Django's model functionality.<\/li>\n\n\n\n<li><code>class Book(models.Model)<\/code>: Define a model class named 'Book'. <code>models.Model<\/code>to <a href=\"https:\/\/secondlife.lol\/en\/python-class-inheritance-examples\/\" data-type=\"post\" data-id=\"4624\">Inheritance<\/a>Answer.<\/li>\n\n\n\n<li><code>title = models.CharField(max_length=200)<\/code>Defines a string field to store the book title. It can store up to 200 characters.<\/li>\n\n\n\n<li><code>author = models.CharField(max_length=100)<\/code>: Field to store the author name. It can be up to 100 characters.<\/li>\n\n\n\n<li><code>publication_date = models.DateField()<\/code>Date field to store the publication date.<\/li>\n\n\n\n<li><code>price = models.DecimalField(max_digits=6, decimal_places=2)<\/code>The decimal field to store the price in. You can store up to 6 digits and 2 decimal places.<\/li>\n\n\n\n<li><code>def __str__(self):<\/code>: This method is used to represent an instance of the model as a string. Here, we've chosen to return the title of the book.<\/li>\n<\/ol>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">And there you have it, a basic Django model! It seems complicated, but when you put it all together, it's not that hard, right? <s>What do you do if you don't understand? You just go, \"Oh, this is what it is,\" and then you realize that this is the floor.<\/s><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Understanding Django Models and database structure<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Django models make it easy to define your database structure. The Book model above actually creates the following tables in the database<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE \"books_book\" (\n    \"id\" integer NOT NULL PRIMARY KEY AUTOINCREMENT,\n    \"title\" varchar(200) NOT NULL,\n    \"author\" varchar(100) NOT NULL,\n    \"publication_date\" date NOT NULL,\n    \"price\" decimal(6, 2) NOT NULL\n);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Code commentary<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">The SQL code is a translation of the Django model we saw earlier into a database table. This code is a SQL command that creates a table called 'books_book'.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Table name: \"books_book\"\n<ul class=\"wp-block-list\">\n<li>By default, Django creates table names by combining the app name and model name. Here, this means the 'Book' model for the 'books' app.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Field definitions\n<ul class=\"wp-block-list\">\n<li>\"id\": An integer field, which is a PRIMARY KEY and has the AUTOINCREMENT property.<\/li>\n\n\n\n<li>\"title\": A variable-length string (varchar) field of up to 200 characters.<\/li>\n\n\n\n<li>\"author\": A variable-length string field of up to 100 characters.<\/li>\n\n\n\n<li>\"publication_date\": A date (DATE) type field.<\/li>\n\n\n\n<li>\"price\": A decimal field of up to 6 digits, including 2 decimal places.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Constraints:\n<ul class=\"wp-block-list\">\n<li>All fields have a NOT NULL constraint to disallow null values.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">As you can see, Django models automatically convert your Python code to SQL for you - that's the magic of the Django Object-Relational Mapping (ORM)!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Django Models Fundamentals: Setting up relationships<\/h2>\n\n\n<style>.kb-image4687_5c6253-7a .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image4687_5c6253-7a\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"395\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-4-600x395.jpg\" alt=\"\" class=\"kb-img wp-image-4698\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-4-600x395.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-4-300x197.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-4-768x505.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-4-18x12.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-4.jpg 775w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><figcaption>(Django models basics reference image - Setting up relationships )<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">One of the most important concepts in databases is relationships, and Django models make it easy to represent them.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Publisher(models.Model):\n    name = models.CharField(max_length=200)\n    address = models.CharField(max_length=200)\n\nclass Book(models.Model):\n    title = models.CharField(max_length=200)\n    author = models.ForeignKey('Author', on_delete=models.CASCADE)\n    publisher = models.ForeignKey(Publisher, on_delete=models.SET_NULL, null=True)\n    genres = models.ManyToManyField('Genre')<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Code commentary<\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<ol class=\"wp-block-list\">\n<li><code>author = models.ForeignKey('Author', on_delete=models.CASCADE)<\/code>: This represents a one-to-many (1:N) relationship: one author can write multiple books. <code>on_delete=models.CASCADE<\/code>means that when an author is deleted, all of their books are also deleted.<\/li>\n\n\n\n<li><code>publisher = models.ForeignKey(Publisher, on_delete=models.SET_NULL, null=True)<\/code>: This is also a one-to-many relationship: one publisher can publish multiple books. <code>on_delete=models.SET_NULL<\/code>means that if the publisher is deleted, the publisher field for the book will be set to NULL (True).<\/li>\n\n\n\n<li><code>genres = models.ManyToManyField('Genre')<\/code>This represents a many-to-many (N:N) relationship: a book can belong to multiple genres, and a genre can belong to multiple books.<\/li>\n<\/ol>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">This is how Django models make it easy to represent complex database relationships.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Django Models basics: Database Migration<\/h2>\n\n\n<style>.kb-image4687_8b7bea-fd .kb-image-has-overlay:after{opacity:0.3;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;}.kb-image4687_8b7bea-fd img.kb-img, .kb-image4687_8b7bea-fd .kb-img img{border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}<\/style>\n<div class=\"wp-block-kadence-image kb-image4687_8b7bea-fd\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"809\" height=\"294\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-5.jpg\" alt=\"Django models \uae30\ucd08 \ucc38\uace0 \uc774\ubbf8\uc9c0 - \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ub9c8\uc774\uadf8\ub808\uc774\uc158\" class=\"kb-img wp-image-4699\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-5.jpg 809w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-5-300x109.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-5-600x218.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-5-768x279.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/image-14-5-18x7.jpg 18w\" sizes=\"(max-width: 809px) 100vw, 809px\" \/><figcaption>(Django models basics reference image - Database migration )<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Creating a model doesn't mean it's immediately reflected in the database. Django applies changes to the model to the database through a process called migration. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python manage.py makemigrations\npython manage.py migrate<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">With just these two commands, your model will be made into a real database table. Pretty handy, right?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Finalize<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">So there you have it, the basics of Django models and understanding database structure. How did you like it? It might seem a bit complicated at first, but once you get the hang of it, you'll realize that it's a really powerful and handy tool. With Django models, you can work with complex databases with ease.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now that you've learned the basics of Django models, why not try your hand at creating your own? You'll get a deeper understanding by actually writing and running the code. Let's go!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Glossary of terms for beginners<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ORM: ORM stands for Object-Relational Mapping, a technology that connects objects to relational databases.<\/li>\n\n\n\n<li>Migration: Django's way of reflecting changes to the model into the database schema.<\/li>\n\n\n\n<li>Fields: Represent properties of the model, which correspond to columns in the database.<\/li>\n\n\n\n<li>Foreign Key: A field that references the primary key of another table; used to express a one-to-many relationship.<\/li>\n\n\n\n<li>Many-to-many relationships: When two models can have multiple relationships with each other.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>\uc548\ub155\ud558\uc138\uc694, \uc5ec\ub7ec\ubd84! \uc624\ub298\uc740 Django models \uae30\ucd08\uc801 \ub0b4\uc6a9\uc5d0 \ub300\ud574 \uc54c\uc544\ubcfc \uac70\uc608\uc694&#8230;.<\/p>","protected":false},"author":3,"featured_media":4719,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[3],"tags":[812,779,34,486,153],"class_list":["post-4687","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python-coding","tag-django","tag-orm","tag-python","tag-486","tag-153"],"taxonomy_info":{"category":[{"value":3,"label":"\ud30c\uc774\uc36c(Python)"}],"post_tag":[{"value":812,"label":"Django"},{"value":779,"label":"ORM"},{"value":34,"label":"python"},{"value":486,"label":"\ub370\uc774\ud130\ubca0\uc774\uc2a4"},{"value":153,"label":"\uc6f9\uac1c\ubc1c"}]},"featured_image_src_large":["https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/01\/\ucf54\ub4dc-\ubcf5\uc0ac-\ubc84\ud2bc-\ub9cc\ub4e4\uae30-\ud3ec\uc2a4\ud2b8-\uc378\ub124\uc77c-600x600.jpg",600,600,true],"author_info":{"display_name":"TERE","author_link":"https:\/\/secondlife.lol\/en\/author\/tere\/"},"comment_info":0,"category_info":[{"term_id":3,"name":"\ud30c\uc774\uc36c(Python)","slug":"python-coding","term_group":0,"term_taxonomy_id":3,"taxonomy":"category","description":"","parent":20,"count":117,"filter":"raw","cat_ID":3,"category_count":117,"category_description":"","cat_name":"\ud30c\uc774\uc36c(Python)","category_nicename":"python-coding","category_parent":20}],"tag_info":[{"term_id":812,"name":"Django","slug":"django","term_group":0,"term_taxonomy_id":812,"taxonomy":"post_tag","description":"","parent":0,"count":10,"filter":"raw"},{"term_id":779,"name":"ORM","slug":"orm","term_group":0,"term_taxonomy_id":779,"taxonomy":"post_tag","description":"","parent":0,"count":2,"filter":"raw"},{"term_id":34,"name":"python","slug":"python","term_group":0,"term_taxonomy_id":34,"taxonomy":"post_tag","description":"","parent":0,"count":22,"filter":"raw"},{"term_id":486,"name":"\ub370\uc774\ud130\ubca0\uc774\uc2a4","slug":"%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4","term_group":0,"term_taxonomy_id":486,"taxonomy":"post_tag","description":"","parent":0,"count":4,"filter":"raw"},{"term_id":153,"name":"\uc6f9\uac1c\ubc1c","slug":"%ec%9b%b9%ea%b0%9c%eb%b0%9c","term_group":0,"term_taxonomy_id":153,"taxonomy":"post_tag","description":"","parent":0,"count":5,"filter":"raw"}],"_links":{"self":[{"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/posts\/4687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/comments?post=4687"}],"version-history":[{"count":13,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/posts\/4687\/revisions"}],"predecessor-version":[{"id":4704,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/posts\/4687\/revisions\/4704"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/media\/4719"}],"wp:attachment":[{"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/media?parent=4687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/categories?post=4687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/tags?post=4687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}