MarvinHerzog / Trgovina

Prototip spletne trgovine
MIT License
0 stars 1 forks source link

Nalaganje artiklov in postavljanje ponudb #2

Closed jaanos closed 7 years ago

jaanos commented 7 years ago

Ko poskusim vnesti artikel z astronomsko ceno, dobim napako:

DataError('numeric field overflow\nDETAIL:  A field with precision 9, scale 2 must round to an absolute value less than 10^7.\n',)

Svetujem, da dodaste kako preverbo v JavaScriptu, ki bo preprečevala neveljavne vnose (če pa gre kdo mimo tega, pa naj vidi napako:)). Ko sem poskusil z manjšo ceno, pa mi ni naložilo slike.

Pri postavljanju ponudbe me stran vpraša, ali želim postaviti ponudbo po začetni ceni. Po uspešni postavitvi je potem nova cena nekoliko višja - to je najbrž v redu?

jaanos commented 7 years ago

Vidim, da slike shranjujete kot datoteke v mapo static\images\uploads. Glede na to, da imate aplikacijo na repozitoriju in jo lahko vsakdo uporablja, bi to pomenilo, da bi moral vsakdo, ki poganja aplikacijo, pridobiti naložene slike (to seveda ne bi bil večji problem, če bi aplikacija tekla iz enega glavnega strežnika). Zato bo bolje, če slike naložite v bazo - poglejte si primera nalaganja in prikazovanja slik (slednji sicer uporablja Mongo, a logika je ista).

Mimogrede, če res morate navesti pot v Pythonu, za ločila med imeniki raje uporabljajte / kot \, saj slednje deluje samo na Windowsih. Še boljša rešitev je uporaba os.path.join, ki poskrbi za ustrezno ločilo ne glede na sistem, npr.

os.path.join("static", "images", "uploads", filename)
MarvinHerzog commented 7 years ago

Pa res, čeprav sem dodal omejitev višine cene v sql, večina preverb dela kar python, tole pa sem spregledal. Manjkal še je en indent, zdaj bi moralo delati bolje.

Glede nalaganja slik nisem prepričan kje je napaka, meni dela. Je pa res da je trenutna izvedba z shranjevanjem slik na github precej neoptimalna. V mislih sem imel prav to - torej da bi imel zadevo na enem strežniku, kjer nalaganje ne bi bil problem. Glavna razloga, zakaj trenutno raje uploadam slike na GIT sta ta, da nisem želel smetit z razmeroma velikimi slikami po javni bazi fakultete, drugi pa ta, da je - ko je enkrat aplikacija lokalno nameščena - izvedba programa precej hitrejša, če lahko tudi lokalno dostopa do slik. Pogosto imam do phppgadmin nenavadno šibko povezavo. Razmišljal sem tudi, da bi preselil program na kak zastonjski strežnik (pythonanywhere.com npr, čeprav ta uporablja mysql), da bi se rešil te dileme.

Pri postavitvi ponudbe se cena vedno poviša za 5% (kar je nato minimalna ponudba za naslednjega kupca). Ko ta cena preseže buyout, je možno predmet le še direktno kupiti.

Spremenil bom pa še ločila med imeniki

Hvala za najdbe.

jaanos commented 7 years ago

Zdaj tudi meni deluje nalaganje slik - problem je bil ravno v ločilih imenikov (uporabljam Linux). Sicer pa razumem tudi glede nalaganja - za potrebe tega projekta bo v redu tudi tako. Če želite, lahko dodam še dve sliki, ki sem jih naložil pri sebi, da na predstavitvi ne boste imeli lukenj.

Mimogrede, ena možnost bi bila še, da bi imeli slike tako lokalno kot v bazi - če aplikacija ugotovi, da zahtevane slike nima pri sebi, bi lahko šla pogledat v bazo in prenesla sliko k sebi, da se bo v prihodnje hitreje nalagala. Je pa to morda nekoliko preveč kompliciranja, pa še z gitom se ne bi ravno najbolje ujelo (problem bi bil, če bi pri pullu prejel sliko, ki jo že imaš lokalno - potem ti brez ročnega brisanja ne bi posodobilo delovne različice projekta).

MarvinHerzog commented 7 years ago

Slike lahko nalozite. Zaenkrat bom nalaganje slik pustil kot je, v prihodnje - ce bomo projekt razsirili - bom pa se ukrenil nekaj glede tega. Hvala za predloge.