Projem için bir görünüm için özel izinler uygulamaya çalışıyordum.DRF Özel İzin görünümü engellemiyor
Oldukça basitclass TeamViewPermission(permissions.BasePermission):
"""
Global permission for viewing team pages
"""
def has_permission(self, request, view):
team_id = self.kwargs.get('team_id')
teamqs = MAIN_TEAMS.all()
pk_list = []
for item in MAIN_TEAMS:
pk_list.append(str(item.pk))
if team_id in pk_list:
return True
return False
, çekler yapılandırma ekibi isteğinde ekip sayfayla eşleşen ve bu durumda değilse dışarı kullanıcıyı engelleyip engellemediğini: Şöyle ki, permissions.py
yılında iznini yarattı.
views.py
:
class PlayerList(ListView):
model = player_model
template_name = 'player_list.html'
permission_classes = (TeamViewPermission,)
def get_team(self):
if not hasattr(self, '_team'):
team_id = self.kwargs.get('team_id')
self._team = team_model.objects.get(pk=self.kwargs.get('team_id'))
return self._team
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['team'] = self.get_team()
return context
def get_queryset(self, *args, **kwargs):
queryset = super().get_queryset(*args, **kwargs)
return queryset.filter(team_id=self.kwargs.get('team_id'))
Ben bunu debug çünkü zaman olması gerektiği, bu sayfayı engelleme değil rağmen sayfa, Doğru veya Yanlış döndürür bir gerçeği biliyorum? Sayfa için False değerini döndürür, ancak sayfanın hala döndüğü gibi doğru erişebiliyorum. Burada bir şey eksik miyim?
Görünümünüzün kodunu ekleyebilir misiniz? – ilse2005
Evet, şimdi ekledim. Gerçekten orada çok fazla – dnsko