Closed Hedwika closed 3 years ago
Ahoj Jirko,
našla jsem řešení! Tedy, funguje to, ale přijde mi to takové "umatlané", nevím, jak to popsat :) Nechám tady nahranou prozatím starší verzi, o které ti píšu výše, a popíšu změny, které jsem udělala v PyCharmu a po kterých mi to funguje:
1) vytvořila jsem si ve složce katalog nový soubor "urlsseznam.py"
2) v pujcovna\urls.py jsem do patterns přidala další řádek, mám to takto: urlpatterns = [ path('admin/', admin.site.urls), path('katalog/', include("katalog.urls")), path('katalog/seznam/', include("katalog.urlsseznam")) ]
3) v katalog\urls jsem smazala napojení na třídu SeznamView, mám ho takto: urlpatterns = [ path('', views.IndexView.as_view(), name="katalog") ]
4) v katalog\urlsseznam mám jen volání SeznamView, nic jiného, takhle: urlpatterns = [ path('', views.SeznamView.as_view(), name='seznam') ]
Jak říkám, funguje, což je super :) ale nevím, jestli je v pohodě mít volání tříd ve dvou souborech a nešlo by to přece jen nechat jen v jednom.
Děkuji za radu Hedvika
Ahoj Hedviko,
jde to vyřešit jednodušeji. Django adresu skládá postupně, nejprve bere cestu k aplikaci se souboru pujcovna/urls.py
a poté adresu konkrétní stránky (pohledu) ze souboru katalog/urls.py
. Pokud tedy máš dva pohledy v aplikaci katalog
, v souboru máš pujcovna/urls.py
pořád jen jeden odkaz na aplikaci katalog
a do souboru katalog/urls.py
do seznamu urlpatterns
vložíš dva záznamy. Ale musíš mít oba záznamy v jednom seznamu, nezakládej tam dva seznamy.
Pokud jde o seznam, tak django vezme část katalog/
ze souboru pujcovna/urls.py
a následně část seznam/
ze souboru pujcovna/urls.py
a oboje složí dohromady, takže výsledná stránka běží na http://localhost:8000/katalog/seznam/.
Snad je to srozumitelné :-)
Jirka
Ahoj Jirko,
děkuji za zprávu, je to srozumitelné a už jsem to opravila. Chápu, že má být jen jeden seznam a všimla jsem si, že ten druhý seznam "přemazal" první seznam, ale ještě mi úplně dává smysl ta logika za tím. :) Existuje nějaké vysvětlení, díky kterému bych si to lépe zapamatovala, nebo je potřeba to přijmout jako fakt? :) Než jsem odevzdala první verzi, dlouho jsem hledala v dokumentaci, ale neúaspěšně.
Děkuji a přeji hezký zbytek víkendu Hedvika
Ahoj Hedviko,
v podstatě je to stejné, jako když uložíš hodnotu do proměnné a pak tam uložíš něco jiného, takže se původní hodnota ztratí. To není ani záležitost Djanga, ale obecné fungování Pythonu.
Jinak vidím, že už to máš v pěkném a funkčním stavu a můžu to obodovat :-)
Správně :-)
Správně :-)
Teď to máš poskládané přesně tak, jak by to mělo být :-)
Tady už máš vyřešenou další úlohu, ale pohled a adresa fungují :-)
Super.
Připisuji tedy 5 bodů, už máš dost na získání certifikátu.
Ahoj Jirko,
posílám úkoly z osmé lekce - najdeš je ve složce venv\Scripts\pujcovna - nahrála jsem si tam totiž i složku czechitas s projektem z hodiny.
Narazila jsem na jeden problém - když jdu na katalog/, nezobrazí se mi nic, ale na podstránce katalog/seznam se mi zobrazí to, co se zobrazit má. Zkoušela jsem to různě vyřešit, ale to nejlepší, na co jsem přišla, je, že když si zakomentuji v katalog\urls.py toto:
urlpatterns = [ path('seznam/', views.SeznamView.as_view(), name='seznam') ]
a tudíž tam nechám jen toto:
urlpatterns = [ path("", views.IndexView.as_view(), name="katalog") ]
Pak se mi na katalog/ zobrazuje, co má, ale na katalog/seznam logicky není nic. Nechápu, proč si v tomto případě path "" na katalog vezme a v tom prvním, kdy je tam i path "seznam/" ne a nevím, jak to opravit. Snad je moje vysvětlení problému srozumitelné... :)
Jdu se podívat na lekci 9, třeba tam najdu řešení, kdyby ano, nahraju novou verzi a okomentuji issue.
Zatím děkuji! Hedvika