django yana 1.4 permission_required
True olarak ayarlayabileceğiniz bir raise_exception
parametre yetkisiz bir PermissionDenied istisna
kaldırdı olması gerekiyor
Ör. Sınıf Tabanlı Gönünümü'ndeki bir EXEMPLE vermek:
from django.contrib.auth.decorators import permission_required
...
class MyView(TemplateView):
@method_decorator(permission_required('can_do_something', raise_exception=True))
def dispatch(self, *args, **kwargs):
return super(MyView, self).dispatch(*args, **kwargs)
Ref:
from django.utils import six
from django.core.exceptions import PermissionDenied
from django.contrib.auth.decorators import user_passes_test
def permission_required(perm, login_url=None, raise_exception=True):
def check_perms(user):
if isinstance(perm, six.string_types):
perms = (perm,)
else:
perms = perm
if user.has_perms(perms):
return True
if raise_exception and user.pk:
raise PermissionDenied
return False
return user_passes_test(check_perms, login_url=login_url)
Ve bunu aynı şekilde kullanın: permission_required decorator doc
Bu request.user.message_set.create(), Django'da yerleşik bir işlev mi yoksa yalnızca sözde bir örnek mi? –
@PaulLo: Django'nun yerleşik “Kullanıcı” modelinde bir mesaj örneği oluşturan 'message_set.create()' adlı bir işlev vardı. Hala orada olup olmadığından emin değilim. –
Django'nun resmi sitesine bir göz attım, uesr.message_set 1.2'den beri kullanımdan kaldırıldı ve bunun yerine mesaj çerçevesini kullanmasını önerdiler: https://docs.djangoproject.com/en/1.3/ref/contrib/messages/ –