from django.views.generic import ListView, DetailView
from .models import Comunidad, Provincia, Poblacion
# class based view
class ComunidadList(ListView):
model = Comunidad
#esta fincion me genera la lista de comunidades que se pueden consultar
def get_queryset(self):
context = Comunidad.objects.filter(activado='1')
return context
class ProvinciaList(ListView):
model = Provincia
# esta función seria la que debería filtrar por comunidad_id que le envió desde mi plantilla/template
# no se como capturar y filtrar lo que envió desde comunidad_list.html la variable comunidad_id
def get_context_data(self, **kwargs):
context = super(ProvinciaList, self).get_context_data(**kwargs)
context = Provincia.objects.filter(comunidad_id=comunidad_id)
return self.dispatch(**kwargs)
plantilla/template comunidad_list.html
<h1>Listado</h1>
<p>
</p>
<ul>
{% for comunidad in object_list %}
<li > <p> ({{ comunidad.id }} | <a href="{% url "app:provincia-list" comunidad.id %}">{{ comunidad.comunidad }}</a> | {{ comunidad.activado }} | {{ comunidad.comunidad|slugify }}</p></li>
{#
{% endfor %}
</ul>urls.pySe que es fácil pero no encuentro por donde meter mano y es de las primeras veces que utilizo, la clases basadas en vistas, y la verdad que no me enterio muy bien .from django.conf.urls import url
from .views import (
ComunidadList,
ComunidadDetail,
ProvinciaList,
ProvinciaDetail,
PoblacionList
)
urlpatterns = [
url(r'^comunidad/$', ComunidadList.as_view(), name='comunidad-list'),
url(r'^provincia/(?P<comunidad_id>[0-9]+)$', ProvinciaList.as_view(), name='provincia-list'),
url(r'^poblacion/$', PoblacionList.as_view(), name='poblacion-list'),
]
Gracias por vuestro tiempo.
Saludos
# esta función seria la que debería filtrar por comunidad_id que le envió desde mi plantilla/template
# no se como capturar y filtrar lo que envió desde comunidad_list.html la variable comunidad_id
def get_context_data(self, **kwargs):
context = super(ProvinciaList, self).get_context_data(**kwargs)
context = Provincia.objects.filter(comunidad_id=comunidad_id)
return self.dispatch(**kwargs)
#seleccionamos solo los registros segun lo que nos envia por url la template
def get_queryset(self):
comunidad_id = self.kwargs['comunidad_id']
return Provincia.objects.filter(comunidad_id=comunidad_id)
Hola a todos/asEstoy muy perdido , no se como hace para enviar desde un plantilla/template, una variable y luego utilizarla en otra vista para filtrar los resultados con ella y que me los devuelva. Os pongo el código.views.py
from django.views.generic import ListView, DetailView
from .models import Comunidad, Provincia, Poblacion
# class based view
class ComunidadList(ListView):
model = Comunidad
#esta fincion me genera la lista de comunidades que se pueden consultar
def get_queryset(self):
context = Comunidad.objects.filter(activado='1')
return context
class
ProvinciaList(ListView):
model = Provincia
#seleccionamos solo los registros segun lo que nos envia por url la templatedef get_queryset(self):
comunidad_id = self.kwargs['comunidad_id']
return Provincia.objects.filter(comunidad_id=comunidad_id)