Sadržaj
Nakon što se model i sve što je s njim uspostavljeno, sljedeći aspekt koji treba uzeti u obzir je kako različita polja stupaju u interakciju s bazom podataka.Kada govorimo o ponašanju baze podataka, mislimo na način na koji moramo vidjeti kako su podaci pripremljeni za pohranu, na način na koji uspoređujemo s vrstama podataka Piton s kojima su njihove vrijednosti predstavljene u našoj prijavi u Django.
db_type (self, veza)
Ovu metodu rijetko nadjačavaju aplikacijske klase i podklase, ona vraća niz koji sadrži određene podatke baze podataka koji kontroliraju način stvaranja stupaca određenih polja.
Važno je napomenuti da je vrijednost vraćena ovom metodom posebna za pozadina baze podataka koja se koristi u aplikaciji, pa ako je odlučimo koristiti u projektima s različitim pozadinama baze podataka, vrijednost veze moramo dobiti pomoću connection.settings_dict ['MOTOR']
Pogledajmo na sljedećoj slici kako možemo prevesti u kôd osnovnu uporabu ove metode:
get_prep_value (sebe, vrijednost)
Ovo je metoda koja služi kao osnova za druge metode koje moraju pripremiti podatke za uporabu u bazi podataka.
U većini slučajeva pretvaranje python objekti jednostavnijim podacima koji se mogu prenijeti u bazu podataka ne predstavlja veliki problem i možemo se koristiti standardnom pretvorbom, no kada želimo izvršiti složenije pretvorbe, poput vrste datuma, možemo koristiti ovu metodu kako bismo se pobrinuli za taj posao, na sljedećoj slici imamo način da to postignemo kako smo opisali.
get_db_prep_value (ja, vrijednost, veza, pripremljeno = Netačno)
Postoje slučajevi u kojima se naša aplikacija izvodi u više od jednog mehanizma baze podataka, jer nam ova metoda omogućuje da pripremimo podatke na temelju stroja, zahvaljujući connection.settings_dict ['MOTOR'] možemo ugraditi različite slučajeve ovisno o motoru.
Primjer je kada radimo s postgreSQL -om, ovaj mehanizam može izravno rukovati objektima datuma, pa ako otkrijemo da je to to, možemo izravno proslijediti vrijednost, da vidimo u donjem primjeru kako kombiniramo ovu metodu i prethodnu kako bismo postići robusniji rezultat: