#Django_ORM #filters
OR in filters:
1) queryset = User.objects.filter( first_name__startswith='R') | User.objects.filter(last_name__startswith='D')
2)qs = User.objects.filter(Q(first_name__startswith='R')|Q(last_name__startswith='D'))
In both cases SQL query will be the same
OR in filters:
1) queryset = User.objects.filter( first_name__startswith='R') | User.objects.filter(last_name__startswith='D')
2)qs = User.objects.filter(Q(first_name__startswith='R')|Q(last_name__startswith='D'))
In both cases SQL query will be the same
#Django_ORM #filters
AND in filters:
1) queryset = User.objects.filter( first_name__startswith='R') and User.objects.filter(last_name__startswith='D')
2) queryset_1 & queryset_2
3)filter(Q(<condition_1>) & Q(<condition_2>))
AND in filters:
1) queryset = User.objects.filter( first_name__startswith='R') and User.objects.filter(last_name__startswith='D')
2) queryset_1 & queryset_2
3)filter(Q(<condition_1>) & Q(<condition_2>))
#Django_ORM #filters
Subquery
Django allows using SQL subqueries. Letβs start with something simple, We have a UserParent model which has OnetoOne relation with auth user. We will find all the UserParent which have a UserParent.
from django.db.models import Subquery
users = User.objects.all()
UserParent.objects.filter(user_id__in=Subquery(users.values('id')))
#source
https://books.agiliq.com/projects/django-orm-cookbook/en/latest/subquery.html
Subquery
Django allows using SQL subqueries. Letβs start with something simple, We have a UserParent model which has OnetoOne relation with auth user. We will find all the UserParent which have a UserParent.
from django.db.models import Subquery
users = User.objects.all()
UserParent.objects.filter(user_id__in=Subquery(users.values('id')))
#source
https://books.agiliq.com/projects/django-orm-cookbook/en/latest/subquery.html
π1
#Django_ORM #filters
F
F is used to filter fields of the same model:
User.objects.filter(last_name=F("first_name"))
F
F is used to filter fields of the same model:
User.objects.filter(last_name=F("first_name"))
#Django_ORM #filters
Select_related, prefetch_related
class ModelA(models.Model):
pass
class ModelB(models.Model):
a = ForeignKey(ModelA)
ModelB.objects.select_related('a').all() # Forward ForeignKey relationship
ModelA.objects.prefetch_related('modelb_set').all() # Reverse ForeignKey relationship
Select_related, prefetch_related
class ModelA(models.Model):
pass
class ModelB(models.Model):
a = ForeignKey(ModelA)
ModelB.objects.select_related('a').all() # Forward ForeignKey relationship
ModelA.objects.prefetch_related('modelb_set').all() # Reverse ForeignKey relationship
#Django_ORM #filters
Find Nth record from the query by using slice operator except using first() and last()
e.g
"auth_user"."password",
"auth_user"."last_login",
"auth_user"."is_superuser",
"auth_user"."username",
"auth_user"."first_name",
"auth_user"."last_name",
"auth_user"."email",
"auth_user"."is_staff",
"auth_user"."is_active",
"auth_user"."date_joined"
FROM "auth_user"
ORDER BY "auth_user"."last_login" DESC
LIMIT 1
OFFSET 2
Find Nth record from the query by using slice operator except using first() and last()
e.g
user = User.objects.order_by('-last_login')
[2] // Second Highest record w.r.t 'last_login'
Sql query will look like this:
SELECT
"auth_user"."id","auth_user"."password",
"auth_user"."last_login",
"auth_user"."is_superuser",
"auth_user"."username",
"auth_user"."first_name",
"auth_user"."last_name",
"auth_user"."email",
"auth_user"."is_staff",
"auth_user"."is_active",
"auth_user"."date_joined"
FROM "auth_user"
ORDER BY "auth_user"."last_login" DESC
LIMIT 1
OFFSET 2
#Django_ORM
Make model save only one object
`class Origin(models.Model):
name = models.CharField(max_length=100)
def save(self, *args, **kwargs):
if self.class.objects.count():
self.pk = self.class.objects.first().pk
super().save(*args, **kwargs)`
Make model save only one object
`class Origin(models.Model):
name = models.CharField(max_length=100)
def save(self, *args, **kwargs):
if self.class.objects.count():
self.pk = self.class.objects.first().pk
super().save(*args, **kwargs)`
#Django_ORM #Models
Signals vs Overriding .save
βIf your fields depend on a model you control, override .save
βIf your fields depend on a model from a 3rd party app, which you do no control, use signals.
Signals vs Overriding .save
βIf your fields depend on a model you control, override .save
βIf your fields depend on a model from a 3rd party app, which you do no control, use signals.
#Django_ORM #ordering
Order queryset by case insensitive manner
Order queryset by case insensitive manner
User.objects.all().order_by(Lower('username'))
#Django_ORM #Database
Convert existing databases to Django models
or
Convert existing databases to Django models
python manage.py inspectdb
or
python manage.py inspectdb > models.py
#Django_ORM #Database
Rename column name in Database Table:
` a = models.CharField(max_length=40,db_column='column1')`
Rename column name in Database Table:
` a = models.CharField(max_length=40,db_column='column1')`
#Django #django-modeltranslation #locale
Djangoda template lar bilan ishlaganda statik matn va dinamik matnlarni bir nechta tillarga tarjima qilish imkoniyatini qanday ishlatish haqida (yani saytingizni multilanguage qilish bo'yicha) o'zbek tilida qo'llanma yozibtilar, loyihalaringizda as qotishi mumkin.
https://github.com/islomiy1101/build-multi-language-website
Djangoda template lar bilan ishlaganda statik matn va dinamik matnlarni bir nechta tillarga tarjima qilish imkoniyatini qanday ishlatish haqida (yani saytingizni multilanguage qilish bo'yicha) o'zbek tilida qo'llanma yozibtilar, loyihalaringizda as qotishi mumkin.
https://github.com/islomiy1101/build-multi-language-website
π5π₯3