Author Picture

Kim Majali


Django Annotate() and Alias()

Author Avatar wrote on 06/06/2022

Channel

class VideoChannel(models.Model):
    user=models.ForeignKey(User,on_delete=models.CASCADE)
    name=models.CharField(max_length=200)
    detail=models.TextField()
    def __str__(self):
        return self.name
Read more

Order By

Author Avatar wrote on 06/06/2022

Regular

Author.objects.order_by('name')
Related Model

Book.objects.order_by('author__name')
Reverse

Author.objects.order_by('-name')
Multiple Fields

Author.objects.order_by('-name', 'city')
Random Ordering

Author.objects.order_by('?')
Case Sensitive

Author.objects.order_by(Lower('name'))
No Ordering

Author.objects.order_by()
Overriding Order By

Author.objects.order_by('name').order_by('city')
Reverse

queryset = my_queryset.reverse()[:5]
Distinct

queryset = Author.objects.distinct()
Read more

Select_Related() Prefetch_Related()

Author Avatar wrote on 06/06/2022

When the database has foreign keys, using select_related() and prefetch_related() can reduce the number of database requests and improve performance
  • https://docs.djangoproject.com/en/3.2/ref/models/querysets/#select-related
  • https://developpaper.com/djangos-select_related-and-prefetch_related-functions-to-optimize-queryset-queries/
  • Read more

    Avoid Resubmitted Form Upon Refresh

    Author Avatar wrote on 06/06/2022

    After successful submission and processing of a web form, you need to use a return HttpResponseRedirect
    
    def some_view(request):
      if request.method == "POST":
        form = some_form(request.POST)
        if form.is_valid():
    
    Read more

    Django Check If Object Or a Value Exists

    Author Avatar wrote on 06/06/2022

    Record checks

    Use exists()
    
    if scorm.objects.filter(Header__id=qp.id).exists(): # does not work with get
    
    Read more

    Topics: Views