markbaltic / TaborniskaBaza

Projekt pri predmetu OPB 2016/17
MIT License
1 stars 2 forks source link

.idea #9

Closed jaanos closed 6 years ago

jaanos commented 7 years ago

V mapi .idea so datoteke, ki so vezane na računalnik, kjer delata s projektom. Bolje bo torej, če te mape ni na repozitoriju, tako da v .gitignore dodajta vrstico .idea. Mapo bo treba še ročno pobrisati z repozitorija - da ne izgubita nastavitev, svetujem, da mapo iz vajinih delovnih kopij repozitorija skopirata nekam drugam, nato pa eden od vaju mapo pobriše, commita in pusha, drugi pa pulla spremembe k sebi. Nazadnje lahko vsak svojo mapo vrne v svojo delovno kopijo, in zaradi vrstice v .gitignore več ne bo šla na git.

julijatominc commented 7 years ago

Živjo, najprej sem commitala dosedaj narejeno in sem potem želela odstraniti .idea, ampak izgleda, da jo je moj commit odstranil. Ali je to dovolj?

Moje drugo vprašanje se tiče 'extendajnja' base.html. base.html vsebuje iskalno vrstico, iskalno formo in gumb (+) za dodajanje. Ko poženem iskanje grem v tabele.html, ki ima extendan base.html. Takrat gumb izgine. Podobno se zgodi, če kliknem gumb (+), grem v dodajClan.html in izgubim funkcionalnost iskalne vrstice (vrstica ostane). Prosim za nasvet. (Vse to se dogaja na /taborniki/index)

jaanos commented 7 years ago

V .gitignore vseeno dodaj vrstico .idea, da se mapa ne bo ponovno dodala. @markbaltic pa pred naslednjim pullom pri sebi umakni .idea in jo po pullu vrni, da se ti ohranijo nastavitve projekta.

Kolikor vidim, /taborniki/index privzeto pokaže base.html (kjer se nahaja gumb +), vse druge strani pa extendajo index.html (ki tega gumba nima). Tako bo verjetno najbolje, da povsod extendaš base.html, index.html pa najbrž niti ne potrebuješ.

Mimogrede: poskusita se izogibati temu, da ob POST zahtevku prikažeta stran. Zahtevki, ki ničesar ne spremenijo (npr. iskanje), naj raje uporabijo metodo GET, tisti, ki pa (npr. dodajanje člana) pa naj ob uspešno opravljeni spremembi preusmerijo uporabnika na želeno stran (uporabita redirect). Tako se izogneta ponovnemu pošiljanju zahtevka ob osvežitvi strani (in morebitni neželeni ponovitvi spremembe). Prikazovanje strani po zahtevku POST je morda smiselno le, če se zgodi napaka in do spremembe ne pride (tako lahko npr. uporabnik popravi vnesene podatke).

julijatominc commented 7 years ago

Hvala za pomoč. base.html sem spregledala. Pojavlja se mi nova težava z iskanjem po kliku na gumb (+). Klik na (+) me preusmeri na taborniki/dodaj. Potem pa po izvedenem iskanju ostanem na istem url namesto na taborniki/search/. Ali sem napačno uporabla redirecte?

Popravila sem tudi POST zahtevek na GET. Zanima me, če je bilo tako mišljeno?

jaanos commented 7 years ago

V obrazcu iskalnika je atribut action prazen, kar pomeni, da se bo poizvedba naredila na trenutno stran. Da bo delovalo iskanje, tja postavita URL za iskanje - morda bo bolje, da uporabita kar pot search in potem v views.search_results podatke dobita kar neposredno iz obrazca - tako pri index preusmeritev ne bo potrebna (pravzaprav tam ne bo potrebno več nič skrbeti glede iskanja).

Zamenjava POST z GET izgleda v redu. Seveda pa ni potrebno eksplicitno preverjati, ali je zahtevek tipa GET, saj je to privzeta metoda (zgodi se ob vsakem kliku na povezavo). Morda lahko v primeru, ko z obrazcem pri iskanju ni vse v redu (torej ne velja form.is_valid()), naredita preusmeritev na prvo stran.

Mimogrede, ko poženem aplikacijo, dobim opozorilo:

WARNINGS:
?: (urls.W005) URL namespace 'admin' isn't unique. You may not be able to reverse all URLs in this namespace

Če v urls.py odstranim vnos za admin, opozorilo izgine, administratorski vmesnik (oziroma vsaj prijavni obrazec) pa je še vedno dosegljiv. Sicer pa sam poganjam s Python 2.7, ker mi s Python 3.5 ne najde django.contrib.postgres.search (kljub temu, da sem namestil django-contrib-postgres).