Wypowiedzi
-
Tomek K.:
Hej,
Jestem poczatkujacym w django, mam 2 pytania:
1. Użyłem object_list do wyswietlania newsów:
urls.py:
from django.conf.urls.defaults import patterns, include, url
from django.views.generic.list_detail import object_list, object_detail
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
from naukadjango.newsy import views
from naukadjango.newsy.models import News
urlpatterns = patterns('',
url(r'^newsy/$', object_list, {
'queryset':News.objects.all(),
'paginate_by':2,
'template_name':'news/index.html',
})
url(r'^admin/', include(admin.site.urls)),
)
I działa, ale czy owe parametry (paginate_by, template_name) nie powinno się pobierać w definicji funkcji w views.py?
Jeśli używasz "generic views" to nie potrzebne Ci widoki. Masz zapytanie, ilość wyników dla stronicowania, nazwę szablonu. Czego więcej potrzeba? ;-) Szybko i bez pisania dużej ilości kodu. Jak to jest napisane w dokumentacji django:
"Writing Web applications can be monotonous, because we repeat certain patterns again and again. In Django, the most common of these patterns have been abstracted into “generic views” that let you quickly provide common views of an object without actually needing to write any Python code."
W ogóle to polecam zapoznać się też z widokami opartymi na klasach - https://docs.djangoproject.com/en/dev/topics/class-base... Mają one zastapić całkowicie powyższy sposób ;-)