Membuat Form di Django
Tutorial implementasi Form pada Django
Tutorial kali ini saya akan share cara membuat form di Django. Seperti yang kita tau, sebuah aplikasi web modern harus lah interaktif dan bersifat user-centric. Oleh karena itu, sebuah aplikasi Form biasa digunakan. Karena dengan menggunakan form, user bisa berinteraksi langsung dengan web/database.
Cukup pengenalan nya, ayo kita langsung ke praktek:
Pertama, buat sebuah App baru, misal Contact :
$ python manage.py startapp contact
Kedua, Tambahkan contact app di settings.py :
INSTALLED_APPS = (
'django_admin_bootstrapped',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'contact',
)
Ketiga, Setup model yang ada di contact/models.py :
from django.db import models
import datetime
class ContactForm(models.Model):
Nama = models.CharField(max_length=50)
Email = models.EmailField(max_length=100)
Topik = models.CharField(max_length=200)
Pesan = models.CharField(max_length=300)
Tanggal = models.DateTimeField(auto_now_add=True, default=datetime.datetime.now)
def __unicode__(self):
return self.Email
class Meta:
ordering = ['-Tanggal']
Ke-empat, Sync database nya :
$ python manage.py syncdb
Ke-lima, Tambahkan view di contact/views.py :
from django.shortcuts import render, render_to_response
from django.http import HttpResponse, HttpResponseRedirect
from django.template import RequestContext, loader
from .forms import ContactView
from django.contrib import messages
def contact(request):
form = ContactView(request.POST or None)
if form.is_valid():
our_form = form.save(commit=False)
our_form.save()
messages.add_message(request, messages.INFO, 'Pesan anda sudah terkirim. Trims :)')
return HttpResponseRedirect('/')
t = loader.get_template('contact.html')
c = RequestContext(request, {'form': form,})
return HttpResponse(t.render(c))
Ke-enam, Tambahkan satu baris kode ini pada urls.py :
url(r'^contact/', 'contact.views.contact', name='contact'),
Ke-Tujuh, Tambahkan sebuah file baru dengan nama forms.py pada direktori contact :
from django.forms import ModelForm
from .models import ContactForm
from django import forms
class ContactView(ModelForm):
message = forms.CharField(widget=forms.Textarea)
class Meta:
model = ContactForm
Ke-delapan, Buat juga sebuah file admin.py pada direktori contact :
from django.contrib import admin
from .models import ContactForm
class ContactFormAdmin(admin.ModelAdmin):
class Meta:
model = ContactForm
admin.site.register(ContactForm, ContactFormAdmin)
Ke-sembilan, Buat sebuah file dengan nama contact.html pada direktori templates :
{% block content %}
<h3><center>Contact Us</center></h3>
<form action='-' method='POST'>
{% csrf_token %}
{{ form.as_table }}
<br />
<button type='submit' class='btn'>Submit</button>
</form>
{% endblock %}
Ke-sepuluh, Tambahkan satu baris kode berikut ini pada base.html, untuk membuat link ke contact :
<li><a href="{% url 'contact' %}">Contact</a></li>
Selesai.. Semoga bermanfaat :)
Just a geek without glasses