Bir ekibin çeşitli oyuncularını görüntüleyen bir sayfam var. Konfigürasyonda takımlar arasında geçiş yapabilirsiniz, yani TEAM_NAME = 'test'
'u koyarsanız test ekibini açıkça yükler. Sorun şu ki, TEAM_NAME = 'test2'
'u koyarsanız, bu ekip için başlıyor, ancak yine de ekipler arasında geçiş yapmak için URL'yi değiştirebiliyorum (yalnızca seçtiğim takımı görüntüleyebilmem gerekirken)Django belirli nesneler için erişimi kısıtlıyor
URL görünüyor http://127.0.0.1:8000/team/1/player/
, 1
, test
olan ilk oluşturulmuş takım olur.
Görünümü yüklediğimde, geçerli görünümün ekibinin yapılandırmadaki ekiple aynı olup olmadığını görmek için bazı izin denetimlerine sahip olmak isterim.
Bu görünümdür:
class PlayerList(ListView):
model = player_model
template_name = 'player_list.html'
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'))
def get(self, request, *args, **kwargs):
return super(PlayerList, self).get(request, *args, **kwargs)
yaradı! Biraz uyar, ama bu cevap için teşekkürler – dnsko