0

[ update display post under author ] Django Blog Python Learning v.2, bismillahhirrahmanirrahim. Selamat sore sobat, sudah 2x kita update mengenai Django Blog Python Learning v.2 ini.

Dan pada kesempatan sore hari ini, kita akan update mengenai Display Article under Author, beberapa clue yang sempat saya fikirkan adalah membuat field baru lagi di class Author pada blog/models.py, yaitu berupa slug_filed untuk author. Dan ending yang di inginkan menjadi kurang lebih seperti ini: python.web.id/author/<author_name>.

Namun setelah berfikir kembali, sepertinya itu akan lebih membutuhkan proses yang njelimet. hehe.. Karena selain makemigrations & migrate, kita juga mensetting di beberapa bagian guna penampilan slug_field tersebut.

Nah, pada akhirnya, kami putuskan untuk mengambil salah satu function berupa get_absolute_url(self): yang merupakan turunan dari class yang telah kita buat di blog/models.py, misalkan seperti ini:

>>> from blog.models import Entry
>>> dir(Entry)
['DoesNotExist', ..... , 'get_absolute_url', 'get_deferred_fields', 'get_next_by_created', 'get_next_by_modified', 'get_previous_by_created', ...... ]
>>>
>>>

Lalu URL apa yang kita gunakan?

Kita memanfaatkan pk [ primary key ] atau id dari Author. yang endingnya digunakan sebagai opsi pengganti dari slug_field. Dan jika diterapkan menjadi seperti ini: python.web.id/author/<pk> [ pk berupa number ].

Kemudian mana yang kita rubah dan tambah?

Untuk perubahan setidaknya ada 6 perubahan, dan 1 penambahan template berupa all_tags.html.

1. Penambahan function berupa get_absolute_url(self): pada class Author di blog/models.py, ini digunakan untuk pengambilan <pk> sebagai absolute url, bisa dilihat disini perubahannya: https://github.com/agusmakmun/Django-Blog-Python-Learning-v.2/commit/55e9792baff6039f9292773432ea29122c252b89

2. Penambahan function baru berupa displayArticleUnderAuthor(request, pk): pada myproject/views.py. bisa dilihat disini: https://github.com/agusmakmun/Django-Blog-Python-Learning-v.2/commit/7bc87c58ca02e4c332a91c90399f95816af50245

3. Penambahan url baru pada myproject/urls.py untuk memanggil functionnya di urls, dan itu bisa dilihat disini: https://github.com/agusmakmun/Django-Blog-Python-Learning-v.2/commit/652c7b174c6963ee8602f25be0c38e81eafe1612

4. Membuat [ template ] baru berupa post_author.html pada directory templates/post_author.html, ini digunakan sebagai template untuk menampilkan post under author, bisa dilihat disini scriptnya: https://github.com/agusmakmun/Django-Blog-Python-Learning-v.2/commit/16bffdf2c04fce04960fb3ae2f02e55c8861c21d

5. Perubahan pada template home.html yaitu yang awalnya {{ object.author }} menjadi <a href="/author/{{ object.author.pk }}">{{ object.author }}</a>, ini dilakukan agar author menjadi link yang menuju ke author url. Untuk perubahannya bisa dilihat disini detailnya: https://github.com/agusmakmun/Django-Blog-Python-Learning-v.2/commit/56a1363250c1866c3244c2c6dcdc590e38ae6114

6. Sama halnya seperti pada perubahan yang ke-5, yaitu hanya perubahan sedikit pada author, kali ini untuk template post.html, kemarin kan kita update mengenai display author di post, nah ini pada bagian <a href="{{ entry.author.website }}"> diganti menjadi <a href="{{ object.author.pk }}">, tujuannya ketika di click avatar/foto’nya akan menuju ke post under author. Selengkapnya bisa dilihat disini: https://github.com/agusmakmun/Django-Blog-Python-Learning-v.2/commit/e19f09d8cc754dc6cc696621078b97cb22a8f182

7. Sama lagi, hanya perubahan sedikit pada author di template result.html, yang awalnya hanya {{ objcet.author }} dirubah menjadi <a href="/author/{{ object.author.pk }}">{{ object.author }}</a>, lihat selengkapnya disini: https://github.com/agusmakmun/Django-Blog-Python-Learning-v.2/commit/da407579964867d65c94a877d24ef89dc5e054d3

Bisa dilihat juga pada Commits on Sep 17, 2015 untuk melihat commits pada tanggal tersebut. https://github.com/agusmakmun/Django-Blog-Python-Learning-v.2/commits/master

Jika ada terjadi problem, bisa ditanyakan melalui comment dibawah ini, atau melalui report issues di https://github.com/agusmakmun/Django-Blog-Python-Learning-v.2/issues

Semoga bermanfaat.

django python

Your Answer

blog comments powered by Disqus