Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2009-03-17 11:10:55
Size: 1132
Editor: 95
Comment:
Revision 3 as of 2009-03-17 11:12:11
Size: 1138
Editor: 95
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Zložitejší model =  = Zložitejší model =
Line 11: Line 11:
== Model == == Trieda a žiak ==
Line 34: Line 34:

Zložitejší model

Uchovávať dáta v jedinom modeli nie je väčšinou výhodné. Model, ktorý sme použili v predošlom prípade má mnoho zásadných nevýhod.

Na prvý pohľad vidno, že dáta sú v ňom duplicitné. Teda ak budeme chcieť zmeniť nejaký údaj (meno učiteľa napríklad) musíme to urobiť na mnohých miestach.

Teraz si ukážeme lepší prístup

Trieda a žiak

Začnime Triedou.

   1 class Trieda(models.Model):
   2     rocnik=models.IntegerField()
   3     pismeno=models.CharField(max_length=5)
   4 
   5     def __unicode__(self):
   6         return u"%d.%s" % (self.rocnik,self.pismeno)

Toto je jednoduché, nič nové sa nedozvedáme.

Trieda Ziak je zaujímavejšia.

   1 class Ziak(models.Model):
   2     meno=models.CharField(max_length=50)
   3     priezvisko=models.CharField(max_length=50)
   4     trieda=models.ForeignKey(Trieda)    
   5     
   6     def __unicode__(self):
   7         return u"%s %s" % (self.meno,self.priezvisko)

Vidíme, že obsahuje referenciu na Triedu. Žiak patrí do jedinej Triedy.

Ukážme si, ako sa s týmito modelmi dá pracovať.

KMaDGWiki: ProgramovanieInternetovychAplikacii/BetterModel (last edited 2009-03-17 17:53:37 by 95)