Skip to content
Andrea Briganti edited this page Jun 27, 2015 · 2 revisions

Chiamate Ajax/Json

Elenchi con parametri

L'app vi fornisce tutta una serie di interrogazioni ajax (GET e POST) per reperire informazioni e cercare entità.

Nelle funzioni di elenco, il codice relativo all'entità di selezione (ad esempio la provincia per conoscere i comuni in essa) viene passato nell'url se la chiamata è GET, mentre come parametro codice se si vuole utilizzare il POST.

Direttamente dal file urls.py, ecco l'elenco delle chiamate per elencare comuni e province di una data entità:

    url(r'^elenco/comuni/provincia/(?P<codice>[0-9]+)/$',
        views.elenco_comuni_provincia, name="elenco_comuni_provincia"),
    url(r'^elenco/comuni/provincia/$',
        views.elenco_comuni_provincia, name="elenco_comuni_provincia_post"),

    url(r'^elenco/comuni/regione/(?P<codice>[0-9]+)/$',
        views.elenco_comuni_regione, name="elenco_comuni_regione"),
    url(r'^elenco/comuni/regione/$',
        views.elenco_comuni_regione, name="elenco_comuni_regione_post"),

    url(r'^elenco/comuni/citta_metro/(?P<codice>[0-9]+)/$',
        views.elenco_comuni_cittmetro, name="elenco_comuni_cittmetro"),
    url(r'^elenco/comuni/citta_metro/$',
        views.elenco_comuni_cittmetro, name="elenco_comuni_cittmetro_post"),

    url(r'^elenco/province/regione/(?P<codice>[0-9]+)/$',
        views.elenco_province_regione, name="elenco_province_regione"),
    url(r'^elenco/province/regione/$',
        views.elenco_province_regione, name="elenco_province_regione_post"),

Potete usare agilmente il reverse url nei template dato che per queste funzioni è disponibile sia la versione GET che POST, nulla vieta per le chiamate GET di utilizzare il reverse della versione post e aggiungere a mano il parametro richiesto. Le due righe in seguito, ad esempio, sono equivalenti

var url = "{% url citta_italiane:elenco_comuni_provincia_post %}" + "50" + "/";
var url = "{% url citta_italiane:elenco_comuni_provincia 50 %}";

Elenchi senza parametri

I seguenti elenchi, invece, non richiedono parametri e possono essere usati sia in GET che in POST:

    url(r'^elenco/province/$', views.elenco_province, name="elenco_province"),
    url(r'^elenco/regioni/$', views.elenco_regioni, name="elenco_regioni"),
    url(r'^elenco/citta_metro/$', views.elenco_citta_metro, name="elenco_citta_metro"),

Funzioni di ricerca

Per cercare un comune, una provincia o una regione per nome, potete utilizzare le seguenti chiamate in POST:

    url(r'^ricerca/comune/$', views.ricerca_comune, name="ricerca_comune"),
    url(r'^ricerca/provincia/$', views.ricerca_provincia, name="ricerca_provincia"),
    url(r'^ricerca/regione/$', views.ricerca_regione, name="ricerca_regione"),

I parametri accettati sono i seguenti:

  • nome: la porzione del nome da cercare (verrà utilizzato icontains)
  • take (opzionale): il numero di elementi massimo da restituire
  • skip (opzionale): il numero di elementi da saltare

Take e skip possono servire per una eventuale paginazione.