def modify_certificates(self, request, pk=None):
calendar = self.get_object()
certificate_id = request.query_params['cert_id']
try:
certificate = Certificate.objects.get(id=certificate_id)
except Certificate.DoesNotExist:
raise NotFound('Certificate "%s" not found.' % certificate_id)
if request.method == 'POST':
# check if already there, and if so, raise 409
if calendar.certificates.filter(id=certificate.id).exists():
raise ContentError('Certificate "%s" already selected.' % certificate_id)
calendar.certificates.add(certificate)
elif request.method == 'DELETE':
if not calendar.certificates.filter(id=certificate.id).exists():
raise ContentError('Certificate "%s" not in this calendar.' % course_id)
calendar.certificates.remove(certificate)
genie.clear_cached_recommendations(calendar.profile_id, calendar.pk)
return Response({'success': True})
评论列表
文章目录