{{{ #!rst .. ========== Django FAQ ========== .. sidebar:: Domande frequenti su Django :subtitle: traduzione in lingua italiana. Documento originale: `Django FAQ`_ Traduzione: paolo `` Aggiornato alla revisione: 3158 .. _Django FAQ: http://www.djangoproject.com/documentation/faq/ .. contents:: **Contenuti del capitolo** =========================== Domande frequenti su Django =========================== .. General questions ================= Domande generali ================ .. Why does this project exist? ---------------------------- Perché esiste questo progetto? .. Django grew from a very practical need: World Online, a newspaper Web operation, is responsible for building intensive Web applications on journalism deadlines. In the fast-paced newsroom, World Online often has only a matter of hours to take a complicated Web application from concept to public launch. Django è cresciuto grazie ad un'esigenza pratica: il ruolo di World Online, un'agenzia giornalistica su Web, consiste nel realizzare applicazioni Web per la pubblicazione di articoli e notizie. Nel vorticoso mondo dell'informazione, Word Online spesso deve trasformare applicazioni Web concettuali in materiale pronto per il lancio al pubblico, in poche ore. .. At the same time, the World Online Web developers have consistently been perfectionists when it comes to following best practices of Web development. Contestualmente, gli sviluppatori Web di World Online sono stati puntigliosi quando si è trattato di seguire meticolosamente le best practices (ndt, le migliori pratiche, intendendo le esperienze più significative o dai migliori risultati adottati in diversi contesti) dello sviluppo Web. .. Thus, Django was designed not only to allow fast Web development, but *best-practice* Web development. Quindi Django è stato progettato non soltanto per consentire un veloce sviluppo Web, ma anche uno sviluppo che seguisse le migliori modalità per ottenere ottimi risultati. .. Django would not be possible without a whole host of open-source projects -- `Apache`_, `Python`_, and `PostgreSQL`_ to name a few -- and we're thrilled to be able to give something back to the open-source community. .. _Apache: http://httpd.apache.org/ .. _Python: http://www.python.org/ .. _PostgreSQL: http://www.postgresql.org/ Django non sarebbe mai stato possibile senza alcuni altri progetti open-source -- `Apache`_, `Python`_ e `PostgreSQL`_, per citarne qualcuno -- e noi ci siamo sentiti elettrizzati nel poter restituire qualcosa alla comunità open-source. .. _Apache: http://httpd.apache.org/ .. _Python: http://www.python.org/ .. _PostgreSQL: http://www.postgresql.org/ .. What does "Django" mean, and how do you pronounce it? ----------------------------------------------------- Che cosa significa "Django", e come lo si pronuncia --------------------------------------------------- .. Django is named after `Django Reinhardt`_, a gypsy jazz guitarist from the 1930s to early 1950s. To this day, he's considered one of the best guitarists of all time. Il nome Django deriva da `Django Reinhardt`_, un chitarrista jazz gitano del periodo dagli anni '30 ai primi anni '50. Ai giorni nostri è considerato uno dei migliori chitarristi di tutti i tempi. .. Listen to his music. You'll like it. Ascolta la sua musica. Ti piacerà. .. Django is pronounced **JANG**-oh. Rhymes with FANG-oh. The "D" is silent. Django è pronunciato **JANG**-oh. La rima è con FANG-oh. La "D" è muta. .. .. _Django Reinhardt: http://en.wikipedia.org/wiki/Django_Reinhardt .. _Django Reinhardt: http://en.wikipedia.org/wiki/Django_Reinhardt .. Is Django stable? ----------------- Django è stabile? ----------------- .. Yes. World Online has been using Django for more than two years. Sites built on Django have weathered traffic spikes of over one million hits an hour and a number of Slashdottings. Yes, it's quite stable. Sì. World Online ha utilizzato Django per più di due anni. Siti costruiti con Django sono stati esposti a picchi di traffico di più di un milione di richieste all'ora, ed a diversi effetti Slashdot. Sì, è piuttosto stabile. .. Does Django scale? ------------------ Le applicazioni realizzate con Django possono scalare? ------------------------------------------------------ .. Yes. Compared to development time, hardware is cheap, and so Django is designed to take advantage of as much hardware as you can throw at it. Sì. Confrontando il costo legato ai tempi di sviluppo ed il costo ben più modesto dell'hardware, abbiamo pensato di progettare Django affinché sia in grado di sfruttare al meglio tutta la potenza di calcolo che gli viene messa a disposizione. .. Django uses a "shared-nothing" architecture, which means you can add hardware at any level -- database servers, caching servers or Web/application servers. Django adotta una architettura "shared-nothing", cioè puoi decidere di potenziare l'hardware ad ogni livello -- sui server database, sui server di cache o sui Web server. .. The framework cleanly separates components such as its database layer and application layer. And it ships with a simple-yet-powerful `cache framework`_. Il framework separa in modo netto i componenti, come ad esempio il livello del database dal livello dell'applicazione. Inoltre è a corredo un simplice ma potente `cache framework`_. .. .. _`cache framework`: http://www.djangoproject.com/documentation/cache/ .. _`cache framework`: http://www.djangoproject.com/documentation/cache/ .. Who's behind this? ------------------ Chi c'è dietro al progetto? --------------------------- .. Django was developed at `World Online`_, the Web department of a newspaper in Lawrence, Kansas, USA. Django è stato sviluppato in `World Online`_, il dipartimento Web di un giornale in Lawrence, Kansas, USA. .. `Adrian Holovaty`_ Adrian is a Web developer with a background in journalism. He was lead developer at World Online for 2.5 years, during which time Django was developed and implemented on World Online's sites. Now he works for washingtonpost.com building rich, database-backed information sites, and continues to oversee Django development. He likes playing guitar (Django Reinhardt style) and hacking on side projects such as `chicagocrime.org`_. He lives in Chicago. On IRC, Adrian goes by ``adrian_h``. `Adrian Holovaty`_ Adrian è uno sviluppatore Web con competenze in campo giornalistico. E' stato il programmatore principale a World Online per due anni e mezzo, durante i quali Django ha vissuto il suo sviluppo e ha potenziato molti siti per World Online. Attualmente lavora per washingtonpost.com, dove realizza importanti siti di informazione basati su database, mentre continua a sopraintendere lo sviluppo di Django. Gli piace suonare la chitarre (nello stile di Django Reinhardt) e lavorare su progetti secondari, come `chicagocrime.org`_. Vive a Chicago. Su IRC, Adrian è noto come ``adrian_h``. .. `Jacob Kaplan-Moss`_ Jacob is a whipper-snapper from California who spends equal time coding and cooking. He's lead developer at World Online and actively hacks on various cool side projects. He's contributed to the Python-ObjC bindings and was the first guy to figure out how to write Tivo apps in Python. Lately he's been messing with Python on the PSP. He lives in Lawrence, Kansas. On IRC, Jacob goes by ``jacobkm``. `Jacob Kaplan-Moss`_ Jacob è un ragazzo californiano che trascorre il suo tempo scrivendo codice e cucinando. E' lo sviluppatore principale a World Online e lavora attivamente su progetti collaterali di considerevole interesse. Ha contribuito ai binding Python-ObjC ed è stata la prima persona a scrivere applicazioni per Tivo in Python. Di recente ha cominciato a interessarsi a Python su PSP. Vive in Lawrence, Kansas. Su IRC, Jacob è noto come ``jacobkm``. .. `Simon Willison`_ Simon is a well-respected Web developer from England. He had a one-year internship at World Online, during which time he and Adrian developed Django from scratch. The most enthusiastic Brit you'll ever meet, he's passionate about best practices in Web development and has maintained a well-read Web-development blog for years at http://simon.incutio.com. He works for Yahoo UK, where he managed to score the title "Hacker Liason." He lives in London. On IRC, Simon goes by ``SimonW``. `Simon Willison`_ Simon è uno sviluppatore Web molto apprezzato proveniente dall'Inghilterra. Ha lavorato internamente a World Online per un anno, durante il quale assieme ad Adrian ha sviluppato Django da zero. E' l'inglese più entusiastico che si possa incontrare, è appassionato di best practices in ambito Web ed ha mantenuto per anni un blog di successo sullo sviluppo Web, che puoi leggere all'indirizzo http://simon.incutio.com. Lavora per Yahoo UK, dove ha ottenuto il titolo di "Hacker Liaison". Vive a Londra. Su IRC, Simon è noto come ``SimonW``. .. `Wilson Miner`_ Wilson's design-fu makes us all look like rock stars. When not sneaking into apartment complex swimming pools, he's the Commercial Development Director for World Online, which means he makes the money that pays all our paychecks. He lives in Lawrence, Kansas. On IRC, Wilson goes by ``wilsonian``. `Wilson Miner`_ Le doti artistiche di Wilson ci fanno apparire come star del rock. Quando non si trova a progettare piscine serpeggianti in qualche appartamento, ricopre il ruolo di "Direttore dello Sviluppo Commerciale" per World Online, cioè produce il denaro dei nostri salari. Vive in Lawrence, Kansas. Su IRC, Wilson è noto come ``wilsonian``. .. _`World Online`: http://code.djangoproject.com/wiki/WorldOnline .. _`Adrian Holovaty`: http://www.holovaty.com/ .. _`washingtonpost.com`: http://www.washingtonpost.com/ .. _`chicagocrime.org`: http://www.chicagocrime.org/ .. _`Simon Willison`: http://simon.incutio.com/ .. _`simon.incutio.com`: http://simon.incutio.com/ .. _`Jacob Kaplan-Moss`: http://www.jacobian.org/ .. _`Wilson Miner`: http://www.wilsonminer.com/ .. Which sites use Django? ----------------------- The Django wiki features a consistently growing `list of Django-powered sites`_. Feel free to add your Django-powered site to the list. .. _list of Django-powered sites: http://code.djangoproject.com/wiki/DjangoPoweredSites Quali siti usano Django? ------------------------ Il wiki di Django esibisce una lista in costante crescita di `siti realizzati con Django`_. Aggiungi liberamente anche il tuo sito a questa lista. .. _siti realizzati con Django: http://code.djangoproject.com/wiki/DjangoPoweredSites .. Django appears to be a MVC framework, but you call the Controller the "view", and the View the "template". How come you don't use the standard names? ----------------------------------------------------------------------------------------------------------------------------------------------------- Sembra che Django sia un framework MVC, ma ciò che voi chiamate "view" è il Controller, e la View il "template". Come mai non usate i nomi standard? ---------------------------------------------------------------------------------------------------------------------------------------------------- .. Well, the standard names are debatable. Bene, la nomenclatura standard è opinabile. .. In our interpretation of MVC, the "view" describes the data that gets presented to the user. It's not necessarily *how* the data *looks*, but *which* data is presented. The view describes *which data you see*, not *how you see it.* It's a subtle distinction. Per come noi interpretiamo il paradigma MVC, la "view" descrive i dati che vengono presentati all'utente. Non necessariamente *come* si *presentano*, ma *quali* dati sono presentati. La view descrive *quali dati sono esposti*, non *come vengono esposti*. E' una distinzione sottile. .. So, in our case, a "view" is the Python callback function for a particular URL, because that callback function describes which data is presented. Perciò, nel nostro caso, una "view" è una funzione Python che viene invocata per un particolare URL, poiché questa funzione descrive quali dati sono presentati. .. Furthermore, it's sensible to separate content from presentation -- which is where templates come in. In Django, a "view" describes which data is presented, but a view normally delegates to a template, which describes *how* the data is presented. Inoltre, serve per separare i contenuti dalla presentazione -- fase in cui subentrano i template. In Django, una "view" descrive quali dati sono presentati, e normalmente delega la presentazione ad un template, il cui compito è descrivere *come* i dati sono presentati. .. Where does the "controller" fit in, then? In Django's case, it's probably the framework itself: the machinery that sends a request to the appropriate view, according to the Django URL configuration. Quindi il "controller" dove rientra? Nel caso di Django, probabilmente è il framework stesso, inteso come serie di meccanismi che inviano le richieste alla view appropriata in base alla configurazione degli URL. .. If you're hungry for acronyms, you might say that Django is a "MTV" framework -- that is, "model", "template", and "view." That breakdown makes much more sense. Se sei affamato di acronimi, potresti dire che Django è un framework "MTV" -- ovvero, "model", "template" e "view". Questa suddivisione può avere un senso. .. At the end of the day, of course, it comes down to getting stuff done. And, regardless of how things are named, Django gets stuff done in a way that's most logical to us. A fine giornata, ovviamente, l'importante è aver terminato il proprio lavoro. E, indipendentemente da come vengano chiamate le varie parti del framework, Django consente di compiere gli incarichi lavorativi nel modo che secondo noi è più logico. .. does -- why doesn't Django? ----------------------------------------------------- offre la -- Perché Django no? --------------------------------------------------------------- .. We're well aware that there are other awesome Web frameworks out there, and we're not adverse to borrowing ideas where appropriate. However, Django was developed precisely because we were unhappy with the status quo, so please be aware that "because " does it is not going to be sufficient reason to add a given feature to Django. Siamo ben consapevoli che esistono altri framework Web grandiosi, e non siamo contrari a prendere alcune idee in prestito. Tuttavia Django è stato sviluppato precisamente perché eravamo scontenti della situazione che esisteva prima della sua progettazione, quindi "che il " metta a disposizione qualcosa in più non è una ragione sufficiente per aggiungere quella funzionalità a Django. .. Why did you write all of Django from scratch, instead of using other Python libraries? -------------------------------------------------------------------------------------- Perché avete scritto Django interamente da zero, invece di usare librerie Python a disposizione? ------------------------------------------------------------------------------------------------ .. When Django was originally written a couple of years ago, Adrian and Simon spent quite a bit of time exploring the various Python Web frameworks available. Quando un paio di anni fa Django fu scritto, Adrian e Simon dedicarono parte del loro tempo all'esplorazione dei vari framework Web scritti in Python. .. In our opinion, none of them were completely up to snuff. Secondo noi, nessuno di essi era completamente adeguato. .. We're picky. You might even call us perfectionists. (With deadlines.) Siamo esigenti. Potresti anche chiamarci perfezionisti (con scadenze). .. Over time, we stumbled across open-source libraries that did things we'd already implemented. It was reassuring to see other people solving similar problems in similar ways, but it was too late to integrate outside code: We'd already written, tested and implemented our own framework bits in several production settings -- and our own code met our needs delightfully. Con il trascorrere del tempo siamo incappati in librerie open-source che offrivano funzionalità da noi già sviluppate. Era rassicurante vedere che altre persone risolvevano problemi simili ai nostri in modi simili, ma era troppo tardi per integrare codice esterno: considerando il tempo che sarebbe servito avremmo invece scritto, testato ed implementato i bit del nostro framework in ambiente di produzione -- ed il nostro codice ha incontrato le nostre esigenze deliziosamente. .. In most cases, however, we found that existing frameworks/tools inevitably had some sort of fundamental, fatal flaw that made us squeamish. No tool fit our philosophies 100%. Nella maggior parte dei casi, tuttavia, abbiamo riscontrato che i framework e gli strumenti esistenti avavano qualche genere di fondamentale, fatale pecca che ci avrebbe nauseati. Nessun tool incontra la nostra filosofia al 100%. .. Like we said: We're picky. Come abbiamo detto: siamo perfezionisti. .. We've documented our philosophies on the `design philosophies page`_. Abbiamo documentato la nostra filosofia nella `pagina delle filosofie di progettazione`_. .. .. _design philosophies page: http://www.djangoproject.com/documentation/design_philosophies/ .. _pagina delle filosofie di progettazione: http://www.djangoproject.com/documentation/design_philosophies/ .. Do you have any of those nifty "screencast" things? --------------------------------------------------- Avete qualcuno di quegli screencast così attraenti? --------------------------------------------------- .. You can bet your bottom they're on the way. But, since we're still hammering out a few points, we want to make sure they reflect the final state of things at Django 1.0, not some intermediary step. In other words, we don't want to spend a lot of energy creating screencasts yet, because Django APIs will shift. Puoi scommettere che arriveranno. Ma, poiché stiamo ancora lavorando su alcuni aspetti, vogliamo essere sicuri che essi riflettano lo stato conclusivo delle cose al momento del rilascio di Django 1.0, evitando ritratti intermedi. In altre parole, non intendiamo ancora impiegare molte energie per gli screencast, perché le API di Django muteranno. .. In the meantime, though, check out this `unofficial Django screencast`_. Nel frattempo, puoi guardare questi `screencast non ufficiali`_. .. .. _unofficial Django screencast: http://www.throwingbeans.org/django_screencasts.html .. _screencast non ufficiali: http://www.throwingbeans.org/django_screencasts.html .. Is Django a content-management-system (CMS)? -------------------------------------------- Django è un sistema per la gestione dei contenuti (CMS)? -------------------------------------------------------- .. No, Django is not a CMS, or any sort of "turnkey product" in and of itself. It's a Web framework; it's a programming tool that lets you build Web sites. No, Django non è un CMS, né una sorta di "prodotto chiavi in mano" di suo. E' un framework Web, uno strumento di programmazione che consente di realizzare siti Web. .. For example, it doesn't make much sense to compare Django to something like Drupal_, because Django is something you use to *create* things like Drupal. Ad esempio, non ha molto senso confrontare Django con un sistema come Drupal_, in quanto usando Django puoi *creare* qualcosa simile a Drupal. .. Of course, Django's automatic admin site is fantastic and timesaving -- but the admin site is one module of Django the framework. Furthermore, although Django has special conveniences for building "CMS-y" apps, that doesn't mean it's not just as appropriate for building "non-CMS-y" apps (whatever that means!). Certamente l'interfaccia di amministrazione di Django è fantastica e ti consente di risparmiare moltissimo tempo -- ma il sito di amministrazione è un modulo del framework Django. Inoltre, sebbene Django si presti particolarmente per creare applicazioni "CMS-y", non significa che non sia appropriato per realizzare applicazioni "non-CMS-y" (qualsiasi cosa si voglia intendere!). .. _Drupal: http://drupal.org/ .. When will you release Django 1.0? --------------------------------- Quando rilascerete Django 1.0? ------------------------------ .. Short answer: When we're comfortable with Django's APIs, have added all features that we feel are necessary to earn a "1.0" status, and are ready to begin maintaining backwards compatibility. This should happen in a couple of months or so, although it's entirely possible that it could happen earlier. That translates into summer 2006. Risposta breve: quando saremo convinti delle API di Django, quando avremo aggiunto tutte le funzionalità che riteniamo essere necessarie per guadagnare lo stato "1.0", e infine quando saremo pronti per cominciare a mantenere la compatibilità relativamente alle versioni precedenti. Tutto questo dovrebbe accadere con buona approssimazione nell'arco di un paio di mesi, benché sia possibile che si verifichi in seguito. Un periodo di rilascio verosimile è l'estate 2006. .. The merging of Django's `magic-removal branch`_ went a long way toward Django 1.0. L'integrazione del codice `magic-removal` nei sorgenti della linea di sviluppo principale di Django ha considerevole influenza sul rilascio della versione 1.0. .. Of course, you should note that `quite a few production sites`_ use Django in its current status. Don't let the lack of a 1.0 turn you off. Naturalmente, dovresti non trascurare il fatto che esistono `vari siti in produzione`_ che usano Django nello stato attuale. Non farti inibire dalla non ufficialità della versione corrente. .. .. _magic-removal branch: http://code.djangoproject.com/wiki/RemovingTheMagic .. _quite a few production sites: http://code.djangoproject.com/wiki/DjangoPoweredSites .. _magic-removal: http://code.djangoproject.com/wiki/RemovingTheMagic .. _vari siti in produzione: http://code.djangoproject.com/wiki/DjangoPoweredSites .. How can I download the Django documentation to read it offline? --------------------------------------------------------------- Come posso scaricare la documentazione di Django e leggerla offline? -------------------------------------------------------------------- .. The Django docs are available in the ``docs`` directory of each Django tarball release. These docs are in ReST (ReStructured Text) format, and each text file corresponds to a Web page on the official Django site. La documentazione su Django è disponibile nella directory ``docs`` di ogni archivio contenente un rilascio ufficiale. Questi documenti sono in formato ReST (ReStructured Text), ed ogni file di testo corrisponde ad una pagina Web del sito. .. Because the documentation is `stored in revision control`_, you can browse documentation changes just like you can browse code changes. Poiché la documentazione risiede in un sistema per il `controllo delle revisioni`_, puoi consultare le modifiche apportate adottando le stesse modalità usate per il codice sorgente. .. Technically, the docs on Django's site are generated from the latest development versions of those ReST documents, so the docs on the Django site may offer more information than the docs that come with the latest Django release. Tecnicamente, i documenti sul sito di Django sono generati usando le ultime versioni di sviluppo dei documenti ReST, e per questo la documentazione sul sito può offrire informazioni più aggiornate rispetto a quelle che trovi a corredo dell'ultimo rilascio di Django. .. .. _stored in revision control: http://code.djangoproject.com/browser/django/trunk/docs .. _controllo delle revisioni: http://code.djangoproject.com/browser/django/trunk/docs .. Installation questions ====================== Domande sull'installazione ========================== .. How do I get started? --------------------- #. `Download the code`_. #. Install Django (read the `installation guide`_). #. Walk through the tutorial_. #. Check out the rest of the documentation_, and `ask questions`_ if you run into trouble. Da dove comincio? ----------------- #. `Scarica il codice`_. #. Installa Django (leggi la `guida di installazione`_). #. Segui il tutorial_. #. Leggi il resto della documentazione_, e `fai domande`_ se incontri qualche problema. .. _`Scarica il codice`: http://www.djangoproject.com/download/ .. _`guida di installazione`: http://www.djangoproject.com/documentation/install/ .. _tutorial: http://www.djangoproject.com/documentation/tutorial1/ .. _documentazione: http://www.djangoproject.com/documentation/ .. _`fai domande`: http://www.djangoproject.com/community/ .. How do I fix the "install a later version of setuptools" error? --------------------------------------------------------------- Come risolvo l'errore "install a later version of setuptools"? -------------------------------------------------------------- .. Just run the ``ez_setup.py`` script in the Django distribution. Semplicemente esegui lo script ``ez_setup.py`` nella distribuzione di Django. .. What are Django's prerequisites? -------------------------------- Quali sono i prerequisiti richiesti da Django? ---------------------------------------------- .. Django requires Python_ 2.3 or later. No other Python libraries are required for basic Django usage. Django richiede la versione 2.3 di Python_ o successiva. Non serve nessun'altra libreria per un uso di base. .. For a development environment -- if you just want to experiment with Django -- you don't need to have a separate Web server installed; Django comes with its own lightweight development server. For a production environment, we recommend `Apache 2`_ and mod_python_, although Django follows the WSGI_ spec, which means it can run on a variety of server platforms. In ambiente di sviluppo -- se vuoi soltanto fare esperimenti -- non hai l'esigenza di dover usare un server Web separato; Django viene fornito con un server Web adatto ad essere usato in ambienti di sviluppo. In ambiente di produzione, raccomandiamo `Apache 2`_ e mod_python_, sebbene Django segua la specifica WSGI_ e quindi possa essere usato su un vasto numero di piattaforme server. .. If you want to use Django with a database, which is probably the case, you'll also need a database engine. PostgreSQL_ is recommended, because we're PostgreSQL fans, and MySQL_ and `SQLite 3`_ are also supported. Se intendi usare Django assieme ad un database, e probabilmente sarà così, ti servirà anche un motore per database. PostgreSQL_ è raccomandato, considerando che siamo appassionati di questo database server, MySQL_ e `SQLite 3`_ sono supportati. .. _Python: http://www.python.org/ .. _Apache 2: http://httpd.apache.org/ .. _mod_python: http://www.modpython.org/ .. _WSGI: http://www.python.org/peps/pep-0333.html .. _PostgreSQL: http://www.postgresql.org/ .. _MySQL: http://www.mysql.com/ .. _`SQLite 3`: http://www.sqlite.org/ .. Do I have to use mod_python? ---------------------------- Devo usare mod_python? ---------------------- .. Not if you just want to play around and develop things on your local computer. Django comes with its own Web server, and things should Just Work. Non se intendi sviluppare applicazioni di prova o applicazioni che nascono per essere usate sul computer locale. Django integra un server Web, e il sistema dovrebbe semplicemente funzionare ed essere pronto per l'uso. .. For production use, though, we recommend mod_python. The Django developers have been running it on mod_python for several years, and it's quite stable. Per ambienti di produzione, tuttavia, raccomandiamo mod_python. Gli sviluppatori di Django stanno usando mod_python da diversi anni, e come soluzione è risultata ampiamente stabile. .. However, if you don't want to use mod_python, you can use a different server, as long as that server has WSGI_ hooks. See the `server arrangements wiki page`_. Se però non vuoi usare mod_python, puoi usare un server differente, purché offra gli hook WSGI_. Consulta la `pagina del wiki sulle configurazioni dei server`_. .. _WSGI: http://www.python.org/peps/pep-0333.html .. _pagina del wiki sulle configurazioni dei server: http://code.djangoproject.com/wiki/ServerArrangements .. How do I install mod_python on Windows? --------------------------------------- * For Python 2.4, grab mod_python from `win32 build of mod_python for Python 2.4`_. * For Python 2.4, check out this `Django on Windows howto`_. * For Python 2.3, grab mod_python from http://www.modpython.org/ and read `Running mod_python on Apache on Windows2000`_. * Also, try this (not Windows-specific) `guide to getting mod_python working`_. Come installo mod_python su Windows? ------------------------------------ * Per Python 2.4, scarica mod_python dalla `build per win32 di mod_python per Python 2.4`_. * Per Python 2.4, consulta questo `howto su Django per Windows`_. * Per Python 2.3, scarica mod_python da http://www.modpython.org/ e leggi `Far funzionare mod_python per Apache su Windows2000`_. * Inoltre, puoi provare questa `guida per far funzionare mod_python`_ (non è specifica per Windows). .. _`build per win32 di mod_python per Python 2.4`: http://www.lehuen.com/nicolas/index.php/2005/02/21/39-win32-build-of-mod_python-314-for-python-24 .. _`howto su Django per Windows`: http://thinkhole.org/wp/2006/04/03/django-on-windows-howto/ .. _`Far funzionare mod_python per Apache su Windows2000`: http://groups-beta.google.com/group/comp.lang.python/msg/139af8c83a5a9d4f .. _`guida per far funzionare mod_python`: http://www.dscpl.com.au/articles/modpython-001.html .. Will Django run under shared hosting (like TextDrive or Dreamhost)? ------------------------------------------------------------------- Django funzionerà se ospitato su hosting condivisi (come TextDrive o Dreamhost)? -------------------------------------------------------------------------------- .. See our `Django-friendly Web hosts`_ page. Consulta la pagina `Web hosts che supportano Django`_. .. _`Web hosts che supportano Django`: http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts .. Should I use the official version or development version? --------------------------------------------------------- Dovrei usare la versione ufficiale o quella di sviluppo? -------------------------------------------------------- .. The Django developers improve Django every day and are pretty good about not checking in broken code. We use the development code (from the Subversion repository) directly on our servers, so we consider it stable. With that in mind, we recommend that you use the latest development code, because it generally contains more features and fewer bugs than the "official" releases. Gli sviluppatori migliorano Django ogni giorno e sono molto abili a non inserire codice mal funzionante. Noi usiamo il codice di sviluppo (proveniente dal repository Subversion) direttamente sui nostri server, perciò lo consideriamo stabile. Con questo in mente ti raccomandiamo di usare la versione più recente del codice in sviluppo, poiché generalmente contiene un maggior numero di funzionalità e meno bachi rispetto alla versione "ufficiale". .. Using Django ============ Usare Django ============ .. Why do I get an error about importing DJANGO_SETTINGS_MODULE? ------------------------------------------------------------- Perché ottengo un errore sull'importazione di DJANGO_SETTINGS_MODULE? --------------------------------------------------------------------- .. Make sure that: Assicurati che: .. * The environment variable DJANGO_SETTINGS_MODULE is set to a fully-qualified Python module (i.e. "mysite.settings.main"). * Said module is on ``sys.path`` (``import mysite.settings.main`` should work). * The module doesn't contain syntax errors (of course). * If you're using mod_python but *not* using Django's request handler, you'll need to work around a mod_python bug related to the use of ``SetEnv``; before you import anything from Django you'll need to do the following:: os.environ.update(req.subprocess_env) (where ``req`` is the mod_python request object). * La variabile d'ambiente DJANGO_SETTINGS_MODULE sia impostata su un modulo Python completamente specificato (fully-qualified) (ad esempio, "mysite.settings.main"). * Detto modulo sia elencato in ``sys.path`` (in questa evenienza, ``import mysite.settings.main`` non dovrebbe segnalare errori). * Il modulo non contenga errori di sintassi (ovviamente). * Se stai usando mod_python ma *non* il request handler di Django, devi operare per aggirare un baco di mod_python relativo all'uso di ``SetEnv``; prima di importare qualsiasi cosa da Django devi eseguire:: os.environ.update(req.subprocess_env) (dove ``req`` è l'oggetto request di mod_python) .. I can't stand your template language. Do I have to use it? ---------------------------------------------------------- Non posso adottare il vostro linguaggio di template. Devo usarlo per forza? --------------------------------------------------------------------------- .. We happen to think our template engine is the best thing since chunky bacon, but we recognize that choosing a template language runs close to religion. There's nothing about Django that requires using the template language, so if you're attached to ZPT, Cheetah, or whatever, feel free to use those. Ci capita di pensare che il nostro motore di template sia la miglior trovata dopo il chunky bacon, ma riconosciamo che scegliere un linguaggio di template è qualcosa di religioso. Non c'è nessun motivo per cui Django ti imponga di usare il nostro linguaggio di template, perciò se hai buona confidenza con ZPT, Cheetah o altro, sei libero di poterli usare. .. Do I have to use your model/database layer? ------------------------------------------- Devo usare i vostri strumenti per creare i modelli e gestire l'interfacciamento ai database? -------------------------------------------------------------------------------------------- .. Nope. Just like the template system, the model/database layer is decoupled from the rest of the framework. No. Proprio come per il sistema di template, il sistema di gestione dei modelli e dei database è disaccoppiato dal resto del framework. .. The one exception is: If you use a different database library, you won't get to use Django's automatically-generated admin site. That app is coupled to the Django database layer. L'unica eccezione: se usi una libreria di database differente, non avrai a disposizione il sito di amministrazione generato automaticamente. Questa applicazione è connessa al layer di database di Django. .. How do I use image and file fields? ----------------------------------- Come si usano i campi immagine e file? -------------------------------------- .. Using a ``FileField`` or an ``ImageField`` in a model takes a few steps: #. In your settings file, define ``MEDIA_ROOT`` as the full path to a directory where you'd like Django to store uploaded files. (For performance, these files are not stored in the database.) Define ``MEDIA_URL`` as the base public URL of that directory. Make sure that this directory is writable by the Web server's user account. #. Add the ``FileField`` or ``ImageField`` to your model, making sure to define the ``upload_to`` option to tell Django to which subdirectory of ``MEDIA_ROOT`` it should upload files. #. All that will be stored in your database is a path to the file (relative to ``MEDIA_ROOT``). You'll must likely want to use the convenience ``get__url`` function provided by Django. For example, if your ``ImageField`` is called ``mug_shot``, you can get the absolute URL to your image in a template with ``{{ object.get_mug_shot_url }}``. Usare un campo ``FileField`` o ``ImageField`` in un modello consiste in alcuni passi: #. Nel file di configurazione, definisci come valore di ``MEDIA_ROOT`` il percorso completo alla directory dove vuoi che Django memorizzi i file caricati (per motivi legati alle prestazioni, questi file non vengono mantenuti nel database). Definisci come valore di ``MEDIA_URL`` l'URL pubblico base per quella directory, ed assicurati che l'utente che esegue il server Web abbia i diritti per scrivervi. #. Aggiungi il campo ``FileField`` o ``ImageField`` al modello, ed assicurati di definire per l'opzione ``upload_to`` la sottodirectory di ``MEDIA_ROOT`` dove desideri che i file vengano mantenuti. #. Tutto quello che verrà mantenuto all'interno del database sarà il percorso del file (relativo a ``MEDIA_ROOT``). Probabilmente ti troverai spesso ad usare la comoda funzione ``get__url`` fornita da Django. Ad esempio, se il nome del campo immagine è ``mug_shot``, potrai accedere all'URL assoluto dell'immagine in un template con ``{{ object.get_mug_shot_url }}``. .. If I make changes to a model, how do I update the database? ----------------------------------------------------------- Se modifico il modello, come aggiorno il database? -------------------------------------------------- .. If you don't mind clearing data, your project's ``manage.py`` utility has an option to reset the SQL for a particular application:: manage.py reset appname Se non ti interessa mantenere eventuali dati preesistenti, l'utility ``manage.py`` offre un'opzione per resettare i dati di una particolare applicazione:: manage.py reset appname .. This drops any tables associated with ``appname`` and recreates them. Questo comando elimina le tabelle associate a ``appname`` e le ricrea. .. If you do care about deleting data, you'll have to execute the ``ALTER TABLE`` statements manually in your database. That's the way we've always done it, because dealing with data is a very sensitive operation that we've wanted to avoid automating. That said, there's some work being done to add partially automated database-upgrade functionality. Se invece vuoi mantenere dati preesistenti, dovrai eseguire i costrutti ``ALTER TABLE`` manualmente. Noi abbiamo sempre scelto questa strada perché avere a che fare con i dati è un'operazione delicata e perciò abbiamo preferito evitare automatismi. Detto questo, è in corso una parziare implementazione della funzionalità di aggiornamento automatico dei dati. .. Do Django models support multiple-column primary keys? ------------------------------------------------------ I modelli di Django supportano chiavi primarie a colonna multipla? ------------------------------------------------------------------ .. No. Only single-column primary keys are supported. No. Sono supportante soltanto chiavi primarie costituite da una singola colonna. .. But this isn't an issue in practice, because there's nothing stopping you from adding other constraints (using the ``unique_together`` model option or creating the constraint directly in your database), and enforcing the uniqueness at that level. Single-column primary keys are needed for things such as the admin interface to work; e.g., you need a simple way of being able to specify an object to edit or delete. Ma nella pratica questo non rappresenta un problema, poiché non c'è nessun impedimento nell'aggiungere altri vincoli (usando l'opzione ``unique_together`` nel modello o agendo direttamente sul database), e richiedendo l'unicità a questo livello. Le chiavi primarie a colonna singola sono necessarie per far funzionare ad esempio l'interfaccia di amministrazione; (questo perché offrono un modo semplice per poter modificare o eliminare un oggetto). .. The database API ================ Le API del database =================== .. How can I see the raw SQL queries Django is running? ---------------------------------------------------- Come posso visualizzare l'SQL nativo delle query eseguite da Django? -------------------------------------------------------------------- .. Make sure your Django ``DEBUG`` setting is set to ``True``. Then, just do this:: >>> from django.db import connection >>> connection.queries [{'sql': 'SELECT polls_polls.id,polls_polls.question,polls_polls.pub_date FROM polls_polls', 'time': '0.002'}] Assicurati che l'impostazione ``DEBUG`` sia ``True``. Poi, semplicemente scrivi:: >>> from django.db import connection >>> connection.queries [{'sql': 'SELECT polls_polls.id,polls_polls.question,polls_polls.pub_date FROM polls_polls', 'time': '0.002'}] .. ``connection.queries`` is only available if ``DEBUG`` is ``True``. It's a list of dictionaries in order of query execution. Each dictionary has the following:: ``sql`` -- The raw SQL statement ``time`` -- How long the statement took to execute, in seconds. ``connection.queries`` è disponibile solo se ``DEBUG`` è ``True``. Si tratta di una lista in cui i dizionari che contengono le informazioni appaiono in ordine di esecuzione. Ogni dizionario è composto da:: ``sql`` -- Il codice SQL nativo ``time`` -- Il tempo richiesto per l'esecuzione della query, in secondi. .. ``connection.queries`` includes all SQL statements -- INSERTs, UPDATES, SELECTs, etc. Each time your app hits the database, the query will be recorded. ``connection.queries`` include tutti i costrutti SQL -- INSERT, UPDATES, SELECT, ecc. Ogni volta che l'applicazione fa uso del database, la query verrà memorizzata. .. Can I use Django with a pre-existing database? ---------------------------------------------- Posso usare Django con database che già esistono? ------------------------------------------------- .. Yes. See `Integrating with a legacy database`_. Si. Vedi `Integrazione con database esistenti`_. .. .. _`Integrating with a legacy database`: http://www.djangoproject.com/documentation/legacy_databases/ .. _`Integrazione con database esistenti`: http://www.djangoproject.com/documentation/legacy_databases/ .. Why is Django leaking memory? ----------------------------- Perché Django consuma tutta la memoria (situazione di memory leak)? ------------------------------------------------------------------- .. Django isn't known to leak memory. If you find your Django processes are allocating more and more memory, with no sign of releasing it, check to make sure your ``DEBUG`` setting is set to ``True``. If ``DEBUG`` is ``True``, then Django saves a copy of every SQL statement it has executed. Non è noto che Django presenti memory leak. Se ti capita di verificare che i processi di Django allocano sempre più memoria senza mai rilasciarla, assicurati che l'impostazione ``DEBUG`` sia ``True``. In questo caso, Django salva una copia di ogni interrogazione SQL che ha eseguito. .. (The queries are saved in ``django.db.connection.queries``. See `How can I see the raw SQL queries Django is running?`_.) (Le query sono salvate in ``django.db.connection.queries``. Vedi `Come posso visualizzare l'SQL nativo delle query eseguite da Django?`_.) .. To fix the problem, set ``DEBUG`` to ``False``. Per risolvere il problema poni ``DEBUG`` sul valore ``False``. .. If you need to clear the query list manually at any point in your functions, just call ``reset_queries()``, like this:: from django import db db.reset_queries() Se vuoi pulire la lista delle query manualmente, in qualsiasi punto delle funzioni che hai scritto, è sufficiente che richiami ``reset_queries()`` come in questo esempio:: from django import db db.reset_queries() .. The admin site ============== Il sito di amministrazione ========================== .. I can't log in. When I enter a valid username and password, it just brings up the login page again, with no error messages. --------------------------------------------------------------------------------------------------------------------------- Non riesco a entrare. Quando inserisco un nome utente e una password validi vengo riportato alla pagina di login senza messaggi di errore. ------------------------------------------------------------------------------------------------------------------------------------------ .. The login cookie isn't being set correctly, because the domain of the cookie sent out by Django doesn't match the domain in your browser. Try these two things: * Set the ``SESSION_COOKIE_DOMAIN`` setting in your admin config file to match your domain. For example, if you're going to "http://www.mysite.com/admin/" in your browser, in "myproject.settings" you should set ``SESSION_COOKIE_DOMAIN = 'www.mysite.com'``. * Some browsers (Firefox?) don't like to accept cookies from domains that don't have dots in them. If you're running the admin site on "localhost" or another domain that doesn't have a dot in it, try going to "localhost.localdomain" or "127.0.0.1". And set ``SESSION_COOKIE_DOMAIN`` accordingly. Il cookie di login non è stato impostato correttamente, perché il dominio del cookie mandato da Django non coincide con il dominio nel tuo browser. Puoi provare a: * Impostare il parametro ``SESSION_COOKIE_DOMAIN`` nel file di configurazione sul nome del tuo dominio di provenienza. Ad esempio se nel browser compare "http://www.mysite.com/admin/", in "myproject.settings" dovresti scrivere ``SESSION_COOKIE_DOMAIN = 'www.mysite.com'``. * Alcuni browser (Firefox?) non gradiscono di accettare cookie da domini che non contengano punti all'interno del loro nome. Se stai facendo girare il sito di amministrazione sul "localhost" o su un altro nome che senza punti, prova ad usare "localhost.localdomain" o "127.0.0.1". Inoltre configura ``SESSION_COOKIE_DOMAIN`` di conseguenza. .. I can't log in. When I enter a valid username and password, it brings up the login page again, with a "Please enter a correct username and password" error. ----------------------------------------------------------------------------------------------------------------------------------------------------------- Non riesco a entrare. Quando inserisco un nome utente e una password validi vengo riportato alla pagina di login con l'errore "Inserire un nome utente e una password validi". ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ .. If you're sure your username and password are correct, make sure your user account has ``is_active`` and ``is_staff`` set to True. The admin site only allows access to users with those two fields both set to True. Se sei sicuro che il nome utente e la password sono corretti, assicurati che i flag ``is_active`` e ``is_staff`` relativi all'utente siano True. Il sito di amministrazione permette l'accesso ai soli utenti in cui questi due campi risultano attivi. .. How do I automatically set a field's value to the user who last edited the object in the admin? ----------------------------------------------------------------------------------------------- Come posso far si che venga memorizzato automaticamente in un campo l'utente che per ultimo ha modificato un oggetto? --------------------------------------------------------------------------------------------------------------------- .. At this point, you can't do this. But it's an oft-requested feature, so we're discussing how it can be implemented. The problem is we don't want to couple the model layer with the admin layer with the request layer (to get the current user). It's a tricky problem. Attualmente non è possibile. Considerando però che le richieste per questa funzionalità sono piuttosto frequenti, stiamo discutendo una possibile implementazione. Il problema è che non vogliamo creare dipendenze tra il layer del modello, il layer di amministrazione e il layer di gestione delle richieste (per ottenere l'utente). E' un problema ingarbugliato. .. How do I limit admin access so that objects can only be edited by the users who created them? --------------------------------------------------------------------------------------------- Come si limita l'accesso agli oggetti in modo che soltanto chi li ha creati possa amministrarli? ------------------------------------------------------------------------------------------------ .. See the answer to the previous question. Vedi la risposta alla precedente domanda. .. My admin-site CSS and images showed up fine using the development server, but they're not displaying when using mod_python. --------------------------------------------------------------------------------------------------------------------------- Il CSS e le immagini del sito di amministrazione vengono mostrati usando il server di sviluppo, ma non compaiono usando mod_python. ----------------------------------------------------------------------------------------------------------------------------------- .. See `serving the admin files`_ in the "How to use Django with mod_python" documentation. Vedi `erogare i file di amministrazione`_ nel documento "Come usare Django con mod_python". .. .. _serving the admin files: http://www.djangoproject.com/documentation/modpython/#serving-the-admin-files .. _erogare i file di amministrazione: http://www.djangoproject.com/documentation/modpython/#serving-the-admin-files .. My "list_filter" contains a ManyToManyField, but the filter doesn't display. ---------------------------------------------------------------------------- "list_filter" contiene un campo ManyToManyField, ma il filtro non lo mostra. ---------------------------------------------------------------------------- .. Django won't bother displaying the filter for a ``ManyToManyField`` if there are fewer than two related objects. Django non si prende la briga di mostrare il filtro per un campo ``ManyToManyField`` se ci sono meno di due oggetti associati. .. For example, if your ``list_filter`` includes ``sites``, and there's only one site in your database, it won't display a "Site" filter. In that case, filtering by site would be meaningless. Ad esempio, se ``list_filter`` include ``sites``, ma c'è un solo sito nel database, non sarà mostrato un filtro "Siti". In questo caso, filtrare per sito non avrebbe senso. .. How can I customize the functionality of the admin interface? ------------------------------------------------------------- Come posso personalizzare le funzionalità dell'interfaccia di amministrazione? ------------------------------------------------------------------------------ .. You've got several options. If you want to piggyback on top of an add/change form that Django automatically generates, you can attach arbitrary JavaScript modules to the page via the model's ``class Admin`` ``js`` parameter. That parameter is a list of URLs, as strings, pointing to JavaScript modules that will be included within the admin form via a ``