PyNotes
245 subscribers
125 photos
7 videos
1 file
61 links
**Code is communication**
admin: @Xojarbu
https://t.iss.one/solutions_py for problem solutions
Download Telegram
#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')`
Note!!!
Use comments liberally not just for yourself, but for anyone else who might have to maintain or enhance your code in the future!!
SearchVector
For searching several fields by annotating to one field

>> from django.contrib.postgres.search import SearchVector
>>> Entry.objects.annotate(
... search=SearchVector('body_text', 'blog__tagline'),
... ).filter(search='Cheese')
[<Entry: Cheese on Toast recipes>, <Entry: Pizza Recipes>]
!! Bare exception is not recommended
Multiple exceptions sample
The finally Statement

output
:
A KeyError occurred!
The finally statement has executed!
Try/Except/Esle/Finally

Output:
`No error occurred
"The finally statement ran!`
r'
Treats the string as a raw string
#working_with_files
Title: Reading Files

Builtin operator with in python will automatically close the file when you are done processing it.
instead of :
handle = open("test.txt")
can use:
with open("test.txt") as file_handler
#working_with_files
Title:Writing files
#compare
Package with module!
A module is a single importable Python file whereas a package is made up of two or more modules. A package can be imported the same way a module is. Whenever you save a Python script of your own, you have created a module.
#compare
*args and **kwargs
*args - allows your function to get infinite arguments (without keywords)
**kwargs - allows your function to get infinite keyword arguments

*args returns tuple
**kwargs returns dictionary

** — for passing keys and values
Clean Code Principles
Code should be elegant and pleasing to read.
No duplication should be allowed. Use DRY (Don't Repeat Yourself)
Code should be covered with tests.
Every function should do one thing and do it well.
Codebase should contain only code that is needed.
#compare
Function & Method

A function inside a class changes its name to “method” and method has to have at least one argument (i.e. self)