Как отфильтровать набор запросов модели перед ее рендерингом
Я пытаюсь запустить представление ниже на моем сайте django:
class CalendarView(LoginRequiredMixin, generic.ListView):
model = Class
template_name = 'leads/calendar.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# use today's date for the calendar
d = get_date(self.request.GET.get('month', None))
# Instantiate our calendar class with today's year and date
cal = Calendar(d.year, d.month)
# Call the formatmonth method, which returns our calendar as a table
html_cal = cal.formatmonth(withyear=True)
context['calendar'] = mark_safe(html_cal)
context['prev_month'] = prev_month(d)
context['next_month'] = next_month(d)
return context
Однако, когда я добавляю приведенный ниже код, он не фильтрует модель Class
перед отображением календаря. Поэтому в итоге я перебираю все экземпляры в модели Class
.
def get_queryset(self):
return Class.objects.filter(date=datetime.date(1111,11,11))
Конечно, я собираюсь отредактировать функцию выше, чтобы использовать информацию пользователя, а не просто фильтровать по дате 1111-11-11.
Однако, если это невозможно, я надеюсь, что вы знаете способ передать информацию о пользователе в utils.py, чтобы обойти эту проблему. Мне нужно что-то вроде нижеприведенного(self.request.user
), которое использовалось для views.py:
def get_context_data(self, **kwargs):
context = super(ListView, self).get_context_data(**kwargs)
user = self.request.user
if user.is_student:
queryset = Lead.objects.filter(
status__exact="n"
)
return context
Было бы очень полезно, если бы вы, ребята, могли помочь мне и задать любые вопросы. Спасибо.