Django models: a quick introduction
Django's ORM is fantastic. Its object oriented approach makes Database implementation an easier task for coders.
Its philosophy sounds like "Simple things easy and hard things possible."
But at a first approach, it may seem quite chaotic for a beginner. Have no fear, in this simple tutorial we will observe the basics of Django's ORM and how to work with it.
Our example model
Suppose you're building an ecommerce website. Surely you will have to face a "Product" database table. In Django, thanks to the ORM, this can be achieved directly from Python code.
Model creation
class Student(models.Model):
product_name = models.CharField(max_length=20,req)
product_id = models.CharField(max_length=128)
is_digital = models.BooleanField()
price = models.FloatField()
def __str__(self):
return self.product_name
Let's examine the code.
product_name
It is the name of our product. A CharField is used because it represents a string, and i choose an arbitrary length of the string as 20.
product_id
The id of the product. For example, it can be an hash of the product name, or a random string. It doesn't matter.
is_digital
It checks if the product is digital or not. As the name suggests, a Boolean field can contain only True or False.
price
The price. It is a float value.
str function
This function will change the name displayed in Django admin panel in what the return value is.
This is how the model looks like. Declaring a model can't be simpler than how it is. Django ORM will save you a lot of time, once you understand it!
Now, to update your project, it is required to migrations. To do so, run these commands in your shell:
python manage.py makemigrations
python manage.py migrate
Now our model is ready! But we need to add products, so how we do it programmatically?
Adding an object to model
Now let's see how to add products through python code:
product=Product.objects.create(product_name='Chair',product_id='1234', is_digital= False, price=20.0
product.save()
As we can see, we can create a Product object through Product.objects.create() method, giving all required fields as parameter, and then we can add it to our database with the save function.
Search in model
You can search for a value through the filter method:
Group.objects.filter(product_name='Chair')
Conclusions
Now, you should know some of the basics interactions with the Django's ORM. If you read my post until here, please follow me to not miss other Django related content.