Каждая функция просмотра принимает параметр request
, поэтому, где бы вы ни определяли свою функцию просмотра, она, вероятно, будет выглядеть так:
from django.shortcuts import render
def my_view(request):
#you can check user here with request.user
#example
if request.user.is_superuser:
return render('your_template_for_admin.html', {})
return render('your_template_for_basic_user.html', {})
РЕДАКТИРОВАТЬ: Если вы используете представление на основе классов, вы можете переопределить его get метод следующим образом:
from django.shortcuts import render
from django.views import View
class MyView(View):
def get(self, request, *args, **kwargs):
#here you can access the request object
return render('template.html', {})
Редактирование на основе комментария : Вы можете использовать get_context_data () вместо get()
, как @Daniel Roseman указал в комментариях.
from django.views import View
class MyView(View):
def get_context_data(self, **kwargs):
#example code assuming that we have a relation between schools and admin A
context = super().get_context_data(**kwargs)
context['schools'] = School.objects.filter(admin_id=self.request.user__id)
return context
И тогда вы можете использовать schools
queryset в вашем шаблоне.