PyNotes
261 subscribers
125 photos
7 videos
1 file
60 links
**Code is communication**
admin: @Xojarbu
https://t.me/solutions_py for problem solutions
Download Telegram
#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
#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>))
#Django_ORM #filters
NOT
1)queryset = User.objects.filter(~Q(id__lt=5))
2)exclude(condition)
#Django_ORM #filters
UNION
q1.union(q2)
#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
πŸ‘1
#Django_ORM #filters
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
#Django_ORM #filters

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)`
#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.
#Django_ORM #ordering
User.objects.all().order_by('date_joined', '-last_login')
#Django_ORM #ordering
Order queryset by case insensitive manner
User.objects.all().order_by(Lower('username'))
#Django_ORM #Database
Convert existing databases to Django models
python manage.py inspectdb
or
python manage.py inspectdb > models.py
#Django_ORM #Database
Renaming Database table name in model class
#Django_ORM #Database
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
πŸ‘5πŸ”₯3