La settimana scorsa ho migrato un’applicazione Django dalla versione 1.04 alla versione 1.6.
Tra gli innumerevoli metodi deprecati, dalla versione 1.5 di Django sono state eliminate le viste generiche basate su funzioni, già deprecate nella versione precedente (https://docs.djangoproject.com/en/1.4/topics/generic-views-migration/).
Nella mia applicazione, la vista generica veniva utilizzata nel file views.py, in questo modo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | @cache_page() |
Come si puo’ notare, il nostro metodo nella view creava una lista generica di commenti, aggiungendo inoltre un extra context.
Durante la migrazione alla versione 1.6 del framework ho dovuto fronteggiare due problematiche:
- la migrazione delle generic view da funzioni a classi
- l’impossibilità di aggiungere un extra_context nella relativa ListView.
Per prima cosa ho dunque esteso la ListView per poter aggiungere il parametro aggiuntivo extra_context:
1 2 3 4 5 6 7 8 | from django.views.generic import ListView |
Infine, ho modificato la mia view come di seguito:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @cache_page(CACHE_MIDDLEWARE_SECONDS) |
Che ne pensate di questa soluzione?