Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso Básico de Django

Curso Básico de Django

Facundo García Martoni

Facundo García Martoni

Utilizando la etiqueta url para evitar el hard coding

23/29
Recursos

Aportes 5

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

href=" {% url  'polls:detail'  question. id  %} "

recuerden que la varible que agregó en la urls. py de la “app polls” app_name=“polls” no la está usando. y polls esta disponible por que asi le puso en las urls de del proyecto en general.

path(''polls/", include(('polls.urls', 'polls'), name='polls')),

psdt no estoy siguiendo el curso en codigo. solo mirando.

En un principo no me funcionaba porque no recargaba localhost:8888/polls ya que quedaba en cache la pagina, sin los cambios en el HTML

at index.html we are hard coding at the href link and this can be fuckd up if we change the path or the name of the app.

How to avoid it → modularizing our code

First, we have to set an app name to pass into the href of index.html

urls,py

from django.urls import path
from . import views #from here import...

**app_name = "polls"**
urlpatterns = [
    #ex: /polls/
    path("", views.index, name="index"),
    #ex: /polls/5/
    **path("<int:question_id>/details/pruebadecambiopademostrarquefuncionalaurltag", views.detail, name="detail"),**
    #ex: /polls/5/results
    path("<int:question_id>/results/", views.results, name="results"),
    #ex: /polls/5/vote
    path("<int:question_id>/vote/", views.vote, name="votes"),    
]

# "< >/ is the way we pass parameters and variables through the url we are setting"

at index,html

{% if latest_question_list %}
    <ul>
        {% for question in latest_question_list %}
            <li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
        {% endfor %}
    </ul>
{% else %}
    <p>No polls are available 😓.</p>
{% endif %}

Extends
Esta etiqueta se puede utilizar de dos formas:

{% extends “base.html” %} (con comillas) usa el valor literal “base.html” como el nombre de la plantilla principal para extender.

{% extiende la variable%} usa el valor de la variable. Si la variable se evalúa como una cadena, Django usará esa cadena como el nombre de la plantilla principal. Si la variable se evalúa como un objeto Plantilla, Django usará ese objeto como plantilla principal.

Excelente clase, mucho ojo con la variable app_name ya que sí la utiliza internamente.

app_name = 'polls'