You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: it/django_forms/README.md
+26-24Lines changed: 26 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Dobbiamo creare un file con questo nome all'interno della cartella `blog`.
12
12
13
13
blog
14
14
└── forms.py
15
-
15
+
16
16
17
17
OK, apriamo questo file e inseriamo:
18
18
@@ -30,11 +30,11 @@ class PostForm(forms.ModelForm):
30
30
31
31
Dobbiamo importare prima di tutto i Django Forms (`from django import forms`) e, ovviamente, il nostro `Post` model (`from .models import Post`).
32
32
33
-
`PostForm`, come probabilmente hai intuito, è nome del nostro form. Dobbiamo ora dire a Django che questa form é una `ModelForm` (così Django farà qualche magia per noi)- `forms.ModelForm` è il comando per farlo.
33
+
`PostForm`, come probabilmente hai intuito, è il nome del nostro form. Dobbiamo ora dire a Django che questa form é una `ModelForm` (così Django farà qualche magia per noi)- `forms.ModelForm` è il comando per farlo.
34
34
35
35
Successivamente, abbiamo `class Meta`, con cui diciamo a Django quale model utilizzare per creare questo form (`model = Post`).
36
36
37
-
Finalmente, possiamo indicare uno o più campi che il nostro form deve avere. In questo caso vogliamo che solamente `title` e `text` siano visibili -`author` è la persona attualmente connessa (tu!) e `created_date` dovrebbe generarsi da sola ogni volta che creiamo un post (cioè nel nostro programma), giusto?
37
+
Finalmente possiamo indicare uno o più campi che il nostro form deve avere. In questo caso vogliamo che solamente `title` e `text` siano visibili -`author` è la persona attualmente connessa (tu!) e `created_date` dovrebbe generarsi da sola ogni volta che creiamo un post (cioè nel nostro programma), giusto?
38
38
39
39
E questo è tutto! Tutto quello che dobbiamo fare ora é usare il form nella nostra *view* e visualizzarlo nel template.
40
40
@@ -102,7 +102,7 @@ urlpatterns = [
102
102
]
103
103
```
104
104
105
-
Dopo aver aggiornato il sito, vedremo un `AttributeError` dal momento che non abbiamo ancora creato `post_new`. Aggiungiamolo, adesso.
105
+
Dopo aver aggiornato il sito, vedremo un `AttributeError` dal momento che non abbiamo ancora creato `post_new`. Aggiungiamolo adesso.
106
106
107
107
## post_new view
108
108
@@ -155,7 +155,7 @@ Ora aggiorna la pagina! Yeah! Puoi ora visualizzare il tuo form!
155
155
156
156
[2]: images/new_form2.png
157
157
158
-
Ma, aspetta un momento!Se provi a scrivere qualcosa in `title` e `text` e cerchi di salvare ciò che hai scritto- che cosa succede?
158
+
Ma, aspetta un momento!Se provi a scrivere qualcosa in `title` e `text` e cerchi di salvare ciò che hai scritto, che cosa succede?
159
159
160
160
Niente! Siamo di nuovo sulla stessa pagina di prima e il nostro testo é sparito...e non compare nessun nuovo post. Che cosa abbiamo sbagliato?
161
161
@@ -182,13 +182,13 @@ else:
182
182
form = PostForm()
183
183
```
184
184
185
-
È ora di completare i puntini `[...]`. Se `method`chiama il metodo`POST` allora vogliamo costruire il nostro `PostForm` con i dati appena inseriti dall'utente, giusto? Raggiungeremo questo risultato con:
185
+
È ora di completare i puntini `[...]`. Se il `method`è`POST` allora vogliamo costruire il nostro `PostForm` con i dati appena inseriti dall'utente, giusto? Raggiungeremo questo risultato con:
186
186
187
187
```python
188
188
form = PostForm(request.POST)
189
189
```
190
190
191
-
Facile!Come prossima cosa dobbiamo controllare se il form è corretto (per cui che tutti i campi necessari siano stati impostati e che non ci siano valori sbagliati). Possiamo fare questo con `form.is_valid()`.
191
+
Facile!Come prossima cosa dobbiamo controllare se il form è corretto (per cui che tutti i campi necessari siano stati impostati e che non ci siano valori sbagliati). Possiamo fare questo con `form.is_valid()`.
192
192
193
193
Se la forma viene ritenuta valida verrà salvata!
194
194
@@ -200,7 +200,7 @@ if form.is_valid():
200
200
post.save()
201
201
```
202
202
203
-
In pratica, ci sono due cose da fare: salviamo il form con `form.save` e aggiungiamo un autore(dal momento che non c'era nessun campo autore `author` nel form `PostForm` e questo campo non può essere lasciato bianco!). `commit=False` significa che non vogliamo salvare `Post` model per il momento-vogliamo prima assicurarci di aggiungere un autore. Per la maggior parte del tempo userai `form.save()`, senza `commit=False`, ma in questo caso abbiamo bisogno di questa extra specificazione. `post.save()` salverà le modifiche (aggiunta di autore) e il nuovo post del tuo blog è stato finalmente creato!
203
+
In pratica, ci sono due cose da fare: salviamo il form con `form.save` e aggiungiamo un autore(dal momento che non c'era nessun campo autore `author` nel form `PostForm` e questo campo non può essere lasciato bianco!). `commit=False` significa che non vogliamo salvare `Post` model per il momento-vogliamo prima assicurarci di aggiungere un autore. Per la maggior parte del tempo userai `form.save()`, senza `commit=False`, ma in questo caso abbiamo bisogno di questa extra specificazione. `post.save()` salverà le modifiche (aggiunta di autore) e il nuovo post del tuo blog è stato finalmente creato!
204
204
205
205
Infine, non sarebbe fantastico se potessimo immediatamente essere indirizzati alla pagina `post_detail` del nuovo blog post appena creato? Per fare ciò dobbiamo importare:
206
206
@@ -214,7 +214,7 @@ Aggiungilo all'inizio del file. E ora possiamo dire: vai alla pagina `post_detai
`blog.views.post_detail` é il nome della view che vogliamo visitare. Ti ricordi che questa *view* ha bisogno della `pk` variabile? Per passarla alla nostre views utilizziamo `pk=post.pk`, dove `post` è il post appena creato!
217
+
`blog.views.post_detail` é il nome della view che vogliamo visitare. Ti ricordi che questa *view* ha bisogno della variabile `pk`? Per passarla alla nostre views utilizziamo `pk=post.pk`, dove `post` è il post appena creato!
218
218
219
219
Ok, abbiamo parlato abbastanza ora e forse sei curioso/a di vedere l'aspetto della nostra *view*, giusto?
220
220
@@ -235,7 +235,7 @@ def post_new(request):
235
235
236
236
Vediamo se funziona. Vai sulla pagina http://127.0.0.1:8000/post/new/, aggiungi un `title` e un `text`, salvalo... e voilà! Il tuo nuovo post è stato aggiunto e noi siamo stati reindirizzati automaticamente alla pagina `post_detail` !
237
237
238
-
Forse hai notato che stiamo impostando una data di pubblicazione prima di salvare il post. Più tardi introdurremo l'uso del *publish button* in **Django Girls Tutorial: Extensions**.
238
+
Forse avrai notato che stiamo impostando una data di pubblicazione prima di salvare il post. Più tardi introdurremo l'uso del *publish button* in **Django Girls Tutorial: Extensions**.
Questo sembra quasi esattamente la view `post_new`, giusto? Ma non del tutto. Prima cosa: si passa un parametro supplementare `pk` dall'URL. Dopo di che: prendiamo il modello ` Post` che vogliamo modificare con `get_object_or_404(Post, pk=pk)` e in seguito, quando creeremo un form, passeremo questo post come `istanza`, sia quando salviamo il form:
315
+
Questo sembra quasi esattamente la view `post_new`, giusto? Ma non del tutto. Prima cosa: si passa un parametro supplementare `pk` dall'URL. Dopo di che: prendiamo il modello ` Post` che vogliamo modificare con `get_object_or_404(Post, pk=pk)` e in seguito, quando creeremo un form, passeremo questo post come `instance`, sia quando salviamo il form:
316
316
317
317
```python
318
318
form = PostForm(request.POST, instance=post)
@@ -370,24 +370,26 @@ Vediamo se funziona su PythonAnywhere. È l'ora di un altro deploy!
370
370
371
371
* Innanzitutto, fai un commit del tuo nuovo codice e fai il push per caricarlo su Github
372
372
373
-
$ git status
374
-
$ git add -A .
375
-
$ git status
376
-
$ git commit -m "Aggiunto le views a create/modificare blog post dal sito."
377
-
$ git push
378
-
373
+
```
374
+
$ git status
375
+
$ git add -A .
376
+
$ git status
377
+
$ git commit -m "Added views to create/edit blog post inside the site."
378
+
$ git push
379
+
```
379
380
380
381
* Poi, in una [console PythonAnywhere Bash][7]:
381
382
382
383
[7]: https://www.pythonanywhere.com/consoles/
383
384
384
-
$ cd my-first-blog
385
-
$ source myvenv/bin/activate
386
-
(myvenv)$ git pull
387
-
[...]
388
-
(myvenv)$ python manage.py collectstatic
389
-
[...]
390
-
385
+
```
386
+
$ cd my-first-blog
387
+
$ source myvenv/bin/activate
388
+
(myvenv)$ git pull
389
+
[...]
390
+
(myvenv)$ python manage.py collectstatic
391
+
[...]
392
+
```
391
393
392
394
* Infine, vai sulla [Web tab][8] e premi **Reload**.
0 commit comments