PyCon merupakan acara konvensi tahunan yang secara spesifik membahas bahasa pemrograman Python. Pada awalnya PyCon hanya diadakan pada Negara Amerika Serikat, namun seiring berjalannya waktu, PyCon juga diadakan pada negara-negara yang mempunyai komunitas Python yang aktif seperti PyCon Singapore, India dll. PyCon 2017 bertemakan " A New Beginning " karena merupakan perhelatan PyCon pertama kali yang diadakan di Indonesia tepatnya di kampus PENS, kota Surabaya. Hal ini tentu saja merupakan kesempatan bagi saya untuk mengikuti banyak talks dan bertemu dengan sesama pyhonistas yang sedang mempelajari atau tertarik dengan bahasa pemrograman Python. Pemateri bukan hanya berasal dari Indonesia saja melainkan pythonistas dari beberapa negara lain juga ikut berpartisipasi dalam acara PyCon 2017 ini. Acara ini menempati Auditorium dan beberapa kelas Gedung Pascasarjana PENS. Dimulai sejak pukul 08.00 WIB. Acara dibuka oleh Dondy Bappedyanto, CEO Biznet Gio Cloud yang berp...
ketika kita membuat sebuah aplikasi web, besar kemungkinan app tersebut diharapkan bisa berinteraksi dengan User. nah, salah satu cara interaksi tersebut yaitu melalui form. Bagi teman - teman yang sudah familiar dengan HTML atau bahkan pemrograman PHP mungkin sudah sering bikin form. di Django kita juga bisa bikin form, bahkan, programmer tidak perlu pusing - pusing lagi dengan CSRF, validasi, bahkan styling dan widget. keren nggak? keren lah.
kali ini saya ingin menjelaskan caranya bikin Model Form dengan Django, yaitu Form yang bisa berinteraksi langsung dengan Model (Database). ntap langsung jajal aja text editor atau IDE kesayangan..aaaa mau dong disayang.
disini saya berasumsi teman - teman sudah membuat satu project dan app yang sudah terinstall di settings.py, terserah mau kasih nama apa.
pertama - tama saya mau kasih liat struktur models.py pada aplikasi saya. silahkan contek kalau mau.
jangan bingung dengan reverse() itu cuma function buat "redirect" user kalau sudah selesai input form. kalau penasaran silahkan baca docs.
selanjutnya apa ya? mikir bentar. maklum newbie hehehehe. oke, bikin satu file baru dengan nama "forms.py" dalam folder app anda. ingat folder app bukan folder root project. isinya kira - kira begini yang perlu diliat pada bagian Class Meta, ini sepertinya agak sedikit rancu dengan Meta Class pada Python, tapi jangan bingung, intinya "Class Meta" disini kita cuma ngasih tau Model apa yang dipakai dan Fields mana yang mau ditampilkan pada form kita nantinya, pada kasus saya disini saya mau pakai semua fields (fields = '__all__'). oke faham. lanjut.
pastinya kita mau bikin views baru kan biar form keren kita bisa di render dan ditampilkan ke khalayak ramai
perhatikan disitu saya menggunakan Class Based View(CBV) yang mana atributnya diturunkan dari class CreateView pada class yang baru kita buat. (nb : pada Django docs sepertinya ada jenis generic view yang lain yaitu,FormView dan sepertinya dikhususkan untuk menghandle form, tapi aaaah saya belum ngulik, kalau ada yang tau perbedaan dan kesalahan saya ada dimana silahkan komen. hehe).
Karena saya disini menggunakan Class Based View, maka semua urusan tetek bengek ngesave query,validasi,dan lain - lain sudah diatur dibalik layar, disini saya cuma meng-override template_name yaitu template yang mau kita pakai, dan form_class yaitu form yang mau dipakai juga. gimana? gampang?
kalau gampang, lanjut bikin url baru
url nya standar newbie aja sih :( oya, hampir lupa, karena pake CBV maka mesti nambahin .as_view() sebab urls.py mintanya function, bukan class, nggak ngerti juga kenapa, aneh memang si Django ini.
terakhir, tinggal bikin template baru deh, kasih nama sesuai dengan yang ada pada views lalu tempel template tag {{forms}}. BERES. ingat kata saya beberapa ketik yang lalu tentang tetek bengek? {%csrf_token%} yang ngurus biar form keren kita nggak mudah dibobol orang iseng. yang penasaran dengan CSRF baca Cross Site Request Forgery protection.
gimana? gampang kan bikin form di Django. iya memang gampang. tapi jangan terbuai dengan semua fitur built-in dan module - module yang ada pada Django. segampang - gampangnya juga Django itu luas cuy seluas Narrow Sea di serial GoT uhuk *season 7* uhuk.
Kalau ada yang mau ditanyakan, kritik dan saran dan apapun, silahkan komen dibawah. bhhhaaaaaay.
kali ini saya ingin menjelaskan caranya bikin Model Form dengan Django, yaitu Form yang bisa berinteraksi langsung dengan Model (Database). ntap langsung jajal aja text editor atau IDE kesayangan..aaaa mau dong disayang.
disini saya berasumsi teman - teman sudah membuat satu project dan app yang sudah terinstall di settings.py, terserah mau kasih nama apa.
pertama - tama saya mau kasih liat struktur models.py pada aplikasi saya. silahkan contek kalau mau.
jangan bingung dengan reverse() itu cuma function buat "redirect" user kalau sudah selesai input form. kalau penasaran silahkan baca docs.
selanjutnya apa ya? mikir bentar. maklum newbie hehehehe. oke, bikin satu file baru dengan nama "forms.py" dalam folder app anda. ingat folder app bukan folder root project. isinya kira - kira begini yang perlu diliat pada bagian Class Meta, ini sepertinya agak sedikit rancu dengan Meta Class pada Python, tapi jangan bingung, intinya "Class Meta" disini kita cuma ngasih tau Model apa yang dipakai dan Fields mana yang mau ditampilkan pada form kita nantinya, pada kasus saya disini saya mau pakai semua fields (fields = '__all__'). oke faham. lanjut.
pastinya kita mau bikin views baru kan biar form keren kita bisa di render dan ditampilkan ke khalayak ramai
perhatikan disitu saya menggunakan Class Based View(CBV) yang mana atributnya diturunkan dari class CreateView pada class yang baru kita buat. (nb : pada Django docs sepertinya ada jenis generic view yang lain yaitu,FormView dan sepertinya dikhususkan untuk menghandle form, tapi aaaah saya belum ngulik, kalau ada yang tau perbedaan dan kesalahan saya ada dimana silahkan komen. hehe).
Karena saya disini menggunakan Class Based View, maka semua urusan tetek bengek ngesave query,validasi,dan lain - lain sudah diatur dibalik layar, disini saya cuma meng-override template_name yaitu template yang mau kita pakai, dan form_class yaitu form yang mau dipakai juga. gimana? gampang?
kalau gampang, lanjut bikin url baru
url nya standar newbie aja sih :( oya, hampir lupa, karena pake CBV maka mesti nambahin .as_view() sebab urls.py mintanya function, bukan class, nggak ngerti juga kenapa, aneh memang si Django ini.
terakhir, tinggal bikin template baru deh, kasih nama sesuai dengan yang ada pada views lalu tempel template tag {{forms}}. BERES. ingat kata saya beberapa ketik yang lalu tentang tetek bengek? {%csrf_token%} yang ngurus biar form keren kita nggak mudah dibobol orang iseng. yang penasaran dengan CSRF baca Cross Site Request Forgery protection.
gimana? gampang kan bikin form di Django. iya memang gampang. tapi jangan terbuai dengan semua fitur built-in dan module - module yang ada pada Django. segampang - gampangnya juga Django itu luas cuy seluas Narrow Sea di serial GoT uhuk *season 7* uhuk.
Kalau ada yang mau ditanyakan, kritik dan saran dan apapun, silahkan komen dibawah. bhhhaaaaaay.
Comments
Post a Comment