def get_queryset(self):
date = self._extract_date()
user = self._extract_user()
queryset = models.AbsenceType.objects.values('id')
queryset = queryset.annotate(
date=Value(date, DateField()),
)
queryset = queryset.annotate(
user=Value(user.id, IntegerField()),
)
queryset = queryset.annotate(
pk=Concat(
'user',
Value('_'),
'id',
Value('_'),
'date',
output_field=CharField()
)
)
# only myself, superuser and supervisors may see by absence balances
current_user = self.request.user
if not current_user.is_superuser:
if current_user.id != user.id:
if not current_user.supervisees.filter(id=user.id).exists():
return models.AbsenceType.objects.none()
return queryset
评论列表
文章目录