This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from rest_framework import viewsets, permissions, status, filters
|
||||
from rest_framework import viewsets, permissions, status, filters, serializers
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
from django.db.models import Q
|
||||
@@ -107,6 +107,10 @@ class ProjectViewSet(viewsets.ModelViewSet):
|
||||
if competition_id:
|
||||
queryset = queryset.filter(competition_id=competition_id)
|
||||
|
||||
contestant_id = self.request.query_params.get('contestant')
|
||||
if contestant_id:
|
||||
queryset = queryset.filter(contestant_id=contestant_id)
|
||||
|
||||
# 如果是普通用户,只能看到已提交的项目,或者自己草稿的项目
|
||||
user = get_current_wechat_user(self.request)
|
||||
if user:
|
||||
@@ -152,6 +156,10 @@ class ProjectViewSet(viewsets.ModelViewSet):
|
||||
except CompetitionEnrollment.DoesNotExist:
|
||||
raise serializers.ValidationError("您没有参赛资格或审核未通过")
|
||||
|
||||
# 检查是否已提交过项目
|
||||
if Project.objects.filter(competition=competition, contestant=enrollment).exists():
|
||||
raise serializers.ValidationError("您已提交过该比赛的项目,请勿重复提交")
|
||||
|
||||
serializer.save(contestant=enrollment)
|
||||
|
||||
@action(detail=True, methods=['post'])
|
||||
|
||||
Reference in New Issue
Block a user