DetailView Django


Para entender un poco lo que es la Class Based View (CBV) podemos decir que:

A view is a callable which takes a request and returns a response. This can be more than just a function, and Django provides an example of some classes which can be used as views. These allow you to structure your views and reuse code by harnessing inheritance and mixins. There are also some generic views for simple tasks which we’ll get to later, but you may want to design your own structure of reusable views which suits your use case

Ahora bien, el DetailView de forma sencilla te la explico así:


from django.views.generic import DetailView
from .models import ModeloImportado
class DetailModeloimportado(DetailView):
template_name = 'detailview.html'
model = ModeloImportado
context_object_name = 'postdetail'
def get_context_data(self, **kwargs):
context = super(DetailModeloimportado, self).get_context_data(**kwargs)
context['postall'] = self.model.objects.all().order_by('-p_datecreated')
return context

 

Respetar las identaciones del código, a mi me fallan al momento de escribir este post.

Con esto simplemente en el views.py le diremos a Django que nos muestre de manera detallada cada uno de los objectos del modelo, ahora haremos unos cambios en el urls.py


url(r'^post/(?P[0-9]+)/$', DetailModeloimportado.as_view(), name='postall'),

Ahora en el template simplemente debemos colocarla el para que desde el enlace podamos navegar a través de los objectos del modelo.



Y en el detailview.html simplemente llamamos de la siguiente forma:


{{ postdetail.p_title }}

Como puedes ver en el detailview.html llamamos {{ postdetail.p_title }} el postdetail lo definimos en context_object_name = ‘postdetail’ en el views.py

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s