I form in Django

Le viste per i form

Utilizzeremo le viste generiche per i form già definite in Django, personalizzandone alcuni elementi.

Per la creazione di un nuovo commento

Creiamo la vista/form nel file didattica/views.py.

from django.views.generic.edit import CreateView
from django.core.urlresolvers import reverse_lazy
from .models import Comment

class CommentCreate(CreateView):
    model = Comment
    fields = [ 'body', 'date', 'course', ]

Il template sarà definito in un nuovo file che creiamo nella cartella didattica/templates/didattica/ dal nome comment_form.html.

Inseriamo al suo interno il seguente codice HTML:

<!DOCTYPE html>
<html>
<body>
<h1>Write a comment</h1>
<form action="" method="post">
{{ form.as_p }}
{% csrf_token %}
<input type="submit" value="Submit">
</form>
</body>
</html>

L'URL per accedere al form

Occorre anche modificare il file didattica/urls.py per definire l'URL che ci permette di accedere alla pagina del form. In tale file aggiungiamo il seguente URL alla lista urlpatterns (fate attenzione all'indentazione, deve essere indentato come le righe precedenti!):

url(r'comments/add/$', views.CommentCreate.as_view(), name='comment-add'),

Approfondimento

Attraverso i form è anche possibile eseguire altre operazioni sui commenti, in particolare l'aggiornamento e la cancellazione di un commento.

Ciò prevede la definizione di altre due viste, rispettivamente CommentUpdate e CommentDelete, e dei seguenti URL:

url(r'comments/(?P<pk>[0-9]+)/update$', views.CommentUpdate.as_view(), 
name='comment-update'),
url(r'comments/(?P<pk>[0-9]+)/delete/$', views.CommentDelete.as_view(), 
name='comment-delete'),

results matching ""

    No results matching ""