def update(self, request, *args, **kwargs):
"""
Override update to make sure that only valid clubRole is assigned after
updation.
"""
club_membership = self.get_object()
serializer = self.get_serializer(club_membership,
data=request.data,
partial=True)
serializer.is_valid(raise_exception=True)
if club_membership.user != serializer.validated_data['user']:
raise rest_exceptions.ValidationError(
'You can not update the User!'
)
if not club_membership.club_role.club \
.has_role(serializer.validated_data['club_role']):
raise rest_exceptions.ValidationError(
'Invalid Club Role ID for this Club!')
return super(ClubMembershipViewSet, self).update(
request, *args, **kwargs)
评论列表
文章目录