def get_current_tip_of_day(request):
user = request.user
if user.is_anonymous():
return Response()
try:
visibility_filter = {'for_staff': True} if user.is_staff else {'for_nonstaff': True}
site_filter = None
if isinstance(get_current_site(request), Site):
site_filter = Q(sites=None) | Q(sites__id__exact=get_current_site(request).id)
available_tips = TipOfDay.objects.filter(
active=True,
**visibility_filter
).exclude(
seen_by=user.pk,
).filter(
Q(groups=None) |
Q(groups__in=user.groups.all())
).filter(site_filter).order_by('id')
serializer = TipOfDaySerializer(available_tips[0])
return Response(serializer.data)
except IndexError:
return Response()
评论列表
文章目录