Tomasz K. programista
Temat: widoki generyczne list_detail
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?
2. Do wyświetlania danych o konkretnym newsie użyłem składni:
url(r'^news/details/(?P<id>\d+)/$', object_detail, {
'queryset':News.objects.all(),
'template_name':'news/detail.html'})
Czyli można powiedzieć, że analogicznie do powyższego, ale z użyciem object_detail, z tym że wyskakuje mi błąd:
Exception Value:
object_detail() got an unexpected keyword argument 'id'
Exception Location: /usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in get_response, line 111
Rozumiem, że jakoś url nie otrzymuje tego id, ale myslalem, ze jak poda się go w wyrażeniu regularnym to już go przyjmie. Ale jednak tego nie robi. Próbowałem dodać do słownika parę 'object_id': id, ale nie działa.
Jak sprawić, aby przyjęło to id z url'a?
Korzystałem z tego tutoriala: http://www.python.rk.edu.pl/w/p/generyczne-widoki/
tyle że tam jest object_detail oparty o slug, a u mnie o id.
Czyżby ten tutorial był mocno przestarzały?
Bede wdzieczny za wskazówki, dzięki.