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 ! |
Dengan Decorator Pattern, didapatkak keuntungan-keuntungan sebagai berikut :
def decorateMyFunction(originalFunction):
'''Decorates a function by wrapping its return value in a pair of HTML paragraph tags.'''
def addAdditionalText():
obtain string returned by original function
add text to the string
return new string
return addAdditionalText
@decorateMyFunction
def functionToBeDecorated():
return True
Perhatikan struktur table auth_user dan account_emailaddress dibawah ini :
CREATE TABLE auth_user (
id serial NOT NULL,
last_login timestamptz NULL,
username varchar(150) NOT NULL,
first_name varchar(30) NOT NULL,
last_name varchar(150) NOT NULL,
email varchar(254) NOT NULL,
is_staff bool NOT NULL,
is_active bool NOT NULL,
date_joined timestamptz NOT NULL
);CREATE TABLE account_emailaddress (
id serial NOT NULL,
email varchar(254) NOT NULL,
verified bool NOT NULL,
"primary" bool NOT NULL,
user_id int4 NOT NULL
);
from allauth.account.models import EmailAddressdef email_verified(function):
def wrapper(request, *args, **kw):
user=request.user
chek_user = EmailAddress.objects.filter(user_id=user.id)
if chek_user:
chek_user = chek_user.first()
if chek_user.verified is False :
return HttpResponseRedirect('/users/no-email-verification')
else:
return function(request, *args, **kw)
else:
return HttpResponseRedirect('/')
return wrapper
from apps.utils import email_verifiedclass DashboardTemplateView(TemplateView):
template_name = 'home/index.html'
@method_decorator(email_verified)
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, **kwargs)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
return context
Baca artikel lainya :