Obsah
Jakmile je model a vše, co s ním souvisí, vytvořen, dalším aspektem, který je třeba vzít v úvahu, je interakce různých polí s databází.Když hovoříme o chování databáze, odkazujeme na způsob, jakým musíme vidět, jak jsou data připravena k ukládání, způsob, jakým provádíme srovnání s datovými typy Krajta s nimiž jsou jejich hodnoty zastoupeny v naší aplikaci v Django.
db_type (self, connection)
Tato metoda je zřídka přepsána aplikačními třídami a podtřídami, vrací řetězec obsahující konkrétní data databáze, která řídí, jak se vytvářejí sloupce určitých polí.
Je důležité zmínit, že hodnota vrácená touto metodou je specifická pro backend databáze používaná v aplikaci, takže pokud se ji rozhodneme použít v projektech s různými databázovými backendy, musíme získat hodnotu připojení pomocí connection.settings_dict ['ENGINE']
Podívejme se na následujícím obrázku, jak můžeme převést do kódu základní použití této metody:
get_prep_value (vlastní, hodnota)
Toto je metoda, která slouží jako základ pro další metody, které musí připravit data pro použití v databázi.
Ve většině případů je převod objekty pythonu na jednodušší data, která lze přenést do databáze, nepředstavuje zásadní problém a můžeme použít standardní převod, ale když chceme provádět složitější převody, jako je například typ data, můžeme tuto metodu použít k péči o tuto práci, v následující grafice máme způsob, jak toho dosáhnout, který jsme popsali.
get_db_prep_value (vlastní, hodnota, připojení, připraveno = nepravda)
Existují případy, kdy naše aplikace běží ve více než jednom databázovém stroji, a proto nám tato metoda umožňuje připravit data na základě enginu díky connection.settings_dict ['ENGINE'] v závislosti na motoru můžeme začlenit různé případy.
Příkladem je, když pracujeme s postgreSQL, tento motor dokáže zpracovat objekty data přímo, takže pokud zjistíme, že to je ono, můžeme hodnotu předat přímo, v následujícím příkladu se podíváme, jak zkombinujeme tuto metodu a předchozí dosáhnout robustnějšího výsledku: