Working With Models

  • 1. Defining Models
    
                    from django.db import models
    
                    class BlogPost(models.Model):
                        title = models.CharField(max_length=200)
                        content = models.TextField()
                        pub_date = models.DateTimeField(auto_now_add=True)
    
                    
  • 2. Field types

    1. IntegerField

    It is used to store integer data

    
                  field_name = models.IntegerField(**options)
    
                  //eg:
                  geeks_field = models.IntegerField() 
                  

    2. CharField

    It is used to store small size alphanumeric data

    
                  field_name = models.CharField(max_length=200, **options) 
    
                  //eg:
                  geeks_field = models.CharField(max_length = 200)
                  

    3. TextField

    It is used to store large size alphanumeric data

    
                  field_name = models.TextField( **options)
    
                  //eg:
                  geeks_field = models.TextField() 
                  

    4. DecimalField

    to stores a fixed-precision decimal number,

    
                  field_name = models.DecimalField(max_digits=None, decimal_places=None, **options)
    
                  //eg:
                  geeks_field = models.DecimalField( 
                             max_digits = 5, 
                             decimal_places = 2) 
    
                  

    5. DateField

    to stores date

    
                  field_name = models.DateField(**options)
    
                  //eg:
                  geeks_field = models.DateField()
    
                  

    6. DateTimeField

    to store date and time

    
                  field_name = models.DateTimeField(**options)
    
                  //eg:
                  geeks_field = models.DateTimeField() 
                  
  • 3. CRUD Operations
    1. Creating / Insert
    
                    post = BlogPost(title='My First Post', content='Hello, Django ORM!')
                    post.save()
    
                    OR
    
                    BlogPost.objects.create(title='My First Post', content='Hello, Django ORM!')
    
    
                    
    2. Reading
    
                    //read all records  
                    all_posts = BlogPost.objects.all()
    
                    //apply where
                    filtered_posts = BlogPost.objects.filter(title__contains='Django')
    
                    //get single record
                    single_post = BlogPost.objects.get(pk=1)
    
                    //apply limit
                    limit_post= BlogPost.objects.all()[:2]
    
                    //get first record
                    first_object = BlogPost.objects.first()
    
                    //get last record
                    last_object = BlogPost.objects.last()
    
                    //find sum
                    total_event_price = Event.objects.values(sum('event_price))
    
                    //get specific fields
                    Emp.objects.values('name','age')
    
                    //get distinct values 
                    Emp.objects.distinct("age","name").values()
    
    
                    
    3. Updating
    
                    post = BlogPost.objects.get(pk=1)
                    post.title = 'Updated Title'
                    post.save()
                    
    4. Deleting
    
                    post = BlogPost.objects.get(pk=1)
                    post.delete()
                   
  • 3. Aggregations
    
            # SUM
            Emp.objects.aggregate(sum_sal = Sum('salary'))
            Output:'sum_sal': 695000.0}
    
            # COUNT
            # COUNT ignores null values 
            Emp.objects.aggregate(total_row = Count('salary'))
            Output: {'total_row': 11}
    
            # AVG
            Emp.objects.aggregate(avg_sal = Avg('salary'))
            Output: {'avg_sal': 63181.818181818184}
    
            # MIN
            Emp.objects.aggregate(min_sal = Min('salary'))
            Output: {'min_sal': 45000.0}
    
            # MAX
            Emp.objects.aggregate(max_sal = Max('salary'))
            Output:  {'max_sal': 80000.0}