Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
django_lliga [2023/04/16 22:36] enric_mieza_sanchez [Exercicis] |
django_lliga [2024/03/14 18:15] (actual) enric_mieza_sanchez [Menu form] |
||
---|---|---|---|
Línia 13: | Línia 13: | ||
- Una taula de classificació per cada lliga, que compti els punts dels partits celebrats, gols a favor i en contra de cada equip. | - Una taula de classificació per cada lliga, que compti els punts dels partits celebrats, gols a favor i en contra de cada equip. | ||
- Una taula de " | - Una taula de " | ||
+ | |||
+ | {{ futbol-chilena.png? | ||
Referències: | Referències: | ||
Línia 19: | Línia 21: | ||
* [[Django Frontend]] ídem. | * [[Django Frontend]] ídem. | ||
- | {{tag> #Daw #DawMp07 #DawMp07Uf2 django framework web }} | + | {{tag> #Daw #DawMp07 # |
\\ | \\ | ||
+ | |||
+ | <WRAP tip> | ||
+ | Podeu veure una mostra d' | ||
+ | </ | ||
===== Crear projecte ===== | ===== Crear projecte ===== | ||
Línia 188: | Línia 194: | ||
En particular [[https:// | En particular [[https:// | ||
- | Podem crear el //seeder// dins una [[https:// | + | Podem crear el //seeder// dins una [[https:// |
- | $ ./admin.py crea_lliga "Lliga fake 2" | + | $ ./manage.py crea_lliga "Lliga fake 2" |
L' | L' | ||
Línia 402: | Línia 408: | ||
===== Formularis ===== | ===== Formularis ===== | ||
- | Referències | + | <WRAP info> |
- | * [[https:// | + | Podeu llegir referències |
- | * [[https:// | + | </WRAP> |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | + | ||
- | Altres: | + | |
- | * https:// | + | |
- | + | ||
- | Un formulari sempre implica diverses passes: | + | |
- | - Crear el formulari (pot ser senzill o més complex, i necessitarà codi). | + | |
- | - Processar les dades del formulari. | + | |
- | - Mostrar un resultat: pot ser senzill (operació OK), o complex (mostrar classificació). Sovint és molt pràctic fer una redirecció cap a una altre //view// i repartir la complexitat en diverses parts del codi. | + | |
- | + | ||
- | Cada pas abans descrit pot necessitar el seu **template** i la seva **view**. A la //view// crearem i filtrarem les dades adequades per passar-les al // | + | |
- | + | ||
- | En Django | + | |
- | - Plantilla // | + | |
- | - Utilitzar objecte '' | + | |
- | - Utilitzar objectes més sofisticats com '' | + | |
- | - Utilitzar | + | |
- | + | ||
- | El processament del formulari és sempre similar (menys en el cas de les //generic views//). | + | |
==== Menu form ==== | ==== Menu form ==== | ||
Línia 451: | Línia 436: | ||
if form.is_valid(): | if form.is_valid(): | ||
lliga = form.cleaned_data.get(" | lliga = form.cleaned_data.get(" | ||
+ | # cridem a / | ||
return redirect(' | return redirect(' | ||
return render(request, | return render(request, | ||
Línia 457: | Línia 443: | ||
</ | </ | ||
- | I la plantilla ens quedaria així de simple: | + | La plantilla |
<file html menu.html> | <file html menu.html> | ||
< | < | ||
Línia 467: | Línia 453: | ||
<input type=" | <input type=" | ||
</ | </ | ||
+ | </ | ||
+ | |||
+ | També necessitarem modificar les URLs per poder accedir adequadament a la classificació i passar-li el ID de la lliga que volem visualitzar: | ||
+ | |||
+ | <file python urls.py> | ||
+ | urlpatterns = [ | ||
+ | path(" | ||
+ | path(" | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | Finalment modifiquem '' | ||
+ | |||
+ | <file python views.py> | ||
+ | def classificacio(request, | ||
+ | lliga = get_object_or_404( Lliga, pk=lliga_id) | ||
+ | equips = lliga.equip_set.all() | ||
+ | #... | ||
</ | </ | ||
Línia 514: | Línia 518: | ||
==== Exercicis ==== | ==== Exercicis ==== | ||
+ | |||
+ | {{ django: | ||
<WRAP todo> | <WRAP todo> | ||
Línia 541: | Línia 547: | ||
</ | </ | ||
+ | \\ | ||
+ | |||
+ | ===== Autenticació ===== | ||
+ | <WRAP info> | ||
+ | Per saber més de com autenticar-nos pots llegir [[Django Auth]] | ||
+ | </ | ||
+ | |||
+ | \\ | ||