Xiaomi Smart Band 9 ProDilengkapi GNSS bawaan dan kompas, Kamu bisa menjelajah dengan percaya diri. Daya Tahan Luar Biasa dengan performa optimal tahan baterai hingga 21 hari. Desain Elegan dan Trendy Tidak hanya handal, Xiaomi Smart Band 9 Pro ini juga tampil memukau dengan frame alloy aluminium berwarna yang memancarkan kesan premium, dipadukan dengan strap trendi yang cocok untuk setiap gaya, baik untuk olahraga maupun acara formal. Free Klik Disini ! |
Decorator digunakan dalam kondisi di mana sebuah objek memiliki responsibility yang didapatkan dari objek yang lain. Responsibility ini menyebabkan adanya nilai tambah pada objek tersebut.
Di tutorial sebelumnya kita telah belajar tentang Django Model Crud.
Di tutorial mini wallet bagian ke-7 ini kita akan belajar bagaimana caranya meng-custom method decorator.
Pastikan Anda telah mengikuti tutorial series Mini Wallet ini dari awal.
Di tutorial ini kita akan membuat decorator untuk memproteksi halaman Tipe Akun, di halaman ini hanya user dengan role administrator saja yang bisa membukanya.
def is_administrator(function):
def wrapper(request, *args, **kwargs):
chekUser = User.objects.get(id=request.user.id)
if chekUser.is_staff == False:
return HttpResponseRedirect('/home/dashboard')
return function(request, *args, **kwargs)
return wrapper
Perhatikan kode diatas, ketika user is_staff sama dengan False, maka halaman akan di redirect ke halaman dashboad.
@method_decorator(is_administrator)
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, **kwargs)
Github: https://github.com/halovina/e-wallet/tree/django-custom-decorator