DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Programiranje (http://www.devprotalk.com/forumdisplay.php?f=23)
-   -   Django i nasleđivanje klasa u modelu (http://www.devprotalk.com/showthread.php?t=1383)

jablan 15. 08. 2006. 14:01

Django i nasleđivanje klasa u modelu
 
Je l' neko radio sa Djangom ovde?

Da li i kako funkcioniše nasleđivanje klasa u modelu? Ja sam nešto probao, pa nije radilo kako treba (nasleđene klase nisu generisale spoljni ključ na tabelu osnovne klase u bazi). Takođe, nije ferceralo u samoj aplikaciji. Bio sam prinuđen da radim good ol' copy-paste... :(

Alef 17. 08. 2006. 21:59

Masleđivanje modela još uvek nije implementirano. Upravo se radi na tome.

Pogledaj: ModelInheritance

Petar Marić 17. 08. 2006. 23:00

Alef je u pravu, mada trenutno postoji hack u zavisnosti od toga šta želiš da postigneš:
1. Za "nasleđivanje" (suštinski proširenje) django.contrib.auth.models.User u svom settings modulu definiši promenljivu AUTH_PROFILE_MODULE na projekat.app.SiteProfile i onda koristiš User.get_profile() kada želiš da dobaviše dodatne informacije

2. Za ostale slučajeve koristi OneToOneField.

PS: Izvini Jablane što ti nisam ranije odgovorio, nisam primetio ovu temu :1074:

misk0 18. 08. 2006. 17:16

Da ne otvaram novu temu .. sinoc mi se nesto nije spavalo, pa odlucim (nakon svih silnih prica na ovom forumu) da instaliram i vidim sta je Django. Iskreno, sa python-om nemam nikakvo iskustvo, nit sam kad gledao kod - nista i to me do sad odbijalo (ono, novi jezik, sta meni to treba bla bla bla.. ) I instaliram i krenem po dokumentaciji - onih par primjera - odusevljen. Sve super, mislim, kao da koristis neki opisni jezik gdje kazes sta i kako zelis i on se postara za sve to generisanje. U sustini 2 sata igranja i poprilicno pozitivni utisci.
Sad me interesuje dojam ljudi koji to koriste malo duze i koji mozda imaju komercijalnih projekata iza sebe :
- koliko je to stvarno kvalitetno rjesenje za komercijalne sajtove? Mislim, vidim da se tonu default postavki moze override-ovati i to mi djeluje pozitivno, ali da li je stvarno tako buduci da sam ja zagrebao samo po povrsini?
- Da li cu doci u situaciju kad nesto jednostavno nece biti 'izvodljivo' na toj platformi? Obecas ljudima kule i gradove (klijentima) i onda se zapetljas ko pile u kucine.
- Koliki je user-community i koliko tesko se rjesavaju problemi 'ispod haube' tj prepravke koje izlaze iz standardnih mogucnosti?

Zainteresovalo me poprilicno i bio bih spreman da odvojim vrijeme da ga upoznam bolje, ali bih ipak to radio zbog eventualne komercijalne primjene a ne zabave i dokazivanja radi.. i da ... koliko je stvarno poznavanje python-a neophodno?

Alef 18. 08. 2006. 18:38

U principu, možeš da uradiš šta god ti padne na pamet, a ako ti nešto od njegovih alata i biblioteka zasmeta u tome, jednostavno ga zaobiđi i nemoj ga koristiti.
U suštini imaš 3 komponente koje čine Django Djangom:

1. URL maper
2. ORM
3. Template jezik

Sve ostalo što dolazi uz Django su moduli napravljeni na bazi ove 3 komponente i ne moraš ih koristiti. Čak i od te 3, obavezan si da koristiš samo prvu, tj. mapiranje URL-ova. Ali je ono jedno od najfleksibilnijih koje sam video, tako da sumnjam da ćeš ikada imati problema sa njim. Umesto ORM-a uvek možeš da koristiš klasične SQL upite ili čak da koristiš neki drugi ORM koji ti odgovara, a ista priča važi i za Template-e. Samo što u tom slučaju nećeš moći da koristiš neke stvari koje dolaze sa svim tim u paketu.

Dobre stvari si verovatno uvideo i sam, tako da o njima nema neke potrebe pričati... Ja ću reći samo par loših stvari (od kojih se na većini već radi):

1. Python hosting-a nema baš mnogo, pogotovo onih koji podržavaju Django. Pa ako tvoj klient već ima hosting negde, a njegov hosting ne pordžava Django...
2. Sistem autentikacije još uvek nije baš najsrećnije razrešen i ne podržava HTTP autentikaciju definisanu u rfc2616, već samo pomoću Cookie-ja (neka me neko ispravi ako grešim).
3. ORM ne podržava kompozitne primarne ključeve (što dovodi do poteškoća u integraciji sa postojećim bazama podataka).

Trenutno ne mogu da se setim više ničeg što je meni zasmetalo u radu...

No da rezimiram... Možeš da uradiš sve što ti padne na pamet, ali za neke stvari ćeš morati možda da se spustiš na malo niži nivo...

jablan 19. 08. 2006. 09:19

Još jedno pitanjce: stekao sam utisak da je onaj njegov admin interfejs prilično neupotrebljiv, osim za unošenje početnih vrednosti u bazu, tokom razvoja. Jesam li u pravu?

Alef 19. 08. 2006. 14:54

Nisi. Admin interface je jako fleksibilan pa možeš da ga podesiš prema svojim potrebama, tako da ti bude integralni deo aplikacije. U Ellington-u su uradili upravo to.

nesh 28. 10. 2006. 12:53

Odavno me nije bilo ovde, tako da "malo" kasnim ;)

Citat:

Originalno napisao jablan
Da li i kako funkcioniše nasle?ivanje klasa u modelu? Ja sam nešto probao, pa nije radilo kako treba (nasle?ene klase nisu generisale spoljni klju? na tabelu osnovne klase u bazi). Tako?e, nije ferceralo u samoj aplikaciji. Bio sam prinu?en da radim good ol' copy-paste...

Za sada nikako, ali se radi na tome.

Ima nacina da se nesto izvede preko menjanja klasa u letu (radio) ali u vecini slucajeva to je veca muka nego korist. Ja za sada koristim OneToOne relacije i namenski napravljene admin form-ove.

Citat:

Originalno napisao misk0
koliko je to stvarno kvalitetno rjesenje za komercijalne sajtove? Mislim, vidim da se tonu default postavki moze override-ovati i to mi djeluje pozitivno, ali da li je stvarno tako buduci da sam ja zagrebao samo po povrsini?

Mislim da se do sada pokazao kao vrlo stabilno i brzo resenje za vecinu primena. Skoro sve je moguce zameniti necim drugim (osim, kao sto Alef rece, url mappera).

Citat:

Originalno napisao misk0
Da li cu doci u situaciju kad nesto jednostavno nece biti 'izvodljivo' na toj platformi? Obecas ljudima kule i gradove (klijentima) i onda se zapetljas ko pile u kucine.

Sve sto nije izvodljivo, za sada, su kompozitni primarni kljucevi a i to bi trebalo da se resi kad se kao (dodatni) ORM doda i sqlalchemy. Takodje, trenutno, ne podrzava rad sa vise baza podataka (radi se na tome) i prava pristupa po za pojedinacne upise u tabelu (i na tome se radi).

Citat:

Originalno napisao misk0
Koliki je user-community i koliko tesko se rjesavaju problemi 'ispod haube' tj prepravke koje izlaze iz standardnih mogucnosti?

Brojanje usera je vrlo nezahvalan posao ;)

Dosta projekata koji su uradjeni u django-u su takodje open source tako da uz malo pretrage moze da se nadje goomila primera.

Prepravke ispod haube, ...., xmmmm, posle 0.95 nisam imao potrebe da to radim, ako i dodje do toga to je obicno ispravka nekog bug-a.

Citat:

Originalno napisao misk0
i da ... koliko je stvarno poznavanje python-a neophodno?

Xmmmm, za osnovno koriscenje ne veliko, ali ako nameravas da radis stvari za koje ne postoje gotova resenja preporucujem advanced level poznavanje python-a, u stvari to uvek preporucujem svima ;).

Citat:

Originalno napisao Alef
1. Python hosting-a nema baš mnogo, pogotovo onih koji podržavaju Django. Pa ako tvoj klient ve? ima hosting negde, a njegov hosting ne pordžava Django...

Nikada mi nece biti jasni provajderi koji trebaju da samo daju shell nalog (ionako, po mom misljenju, obavezan deo bilo kog hostiga) i da podese FastCGI protokol kao najjednostavniju varijantu ne samo za django, nego i za ruby & co. Ako to ne zele da urade .... uvek ima ko hoce, a ako ne -- VPS vise nije tako skup ;)

Citat:

Originalno napisao Alef
2. Sistem autentikacije još uvek nije baš najsre?nije razrešen i ne podržava HTTP autentikaciju definisanu u rfc2616, ve? samo pomo?u Cookie-ja (neka me neko ispravi ako grešim).

Ovaj sto dolazi je dovoljan za vecinu slucajeva, kome treba ozbiljniji sistem moze da ga sam implementira (http://www.djangoproject.com/documen...ation-sources).

A i sama autentikacija je najvise vezana za admin interfejs, nista te ne sprecava da definises neki drugi sistem van toga.

Citat:

Originalno napisao jablan
Još jedno pitanjce: stekao sam utisak da je onaj njegov admin interfejs prili?no neupotrebljiv, osim za unošenje po?etnih vrednosti u bazu, tokom razvoja. Jesam li u pravu?

Vrlo je flekibilan ali i to ima svojih granica. Kada se dodje do form-ova koji uticu na vise od jedne tabele tu nema pomoci -- mora da se pravi rucno.


Vreme je GMT +2. Trenutno vreme je 13:29.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.