Skip to content

Commit c512ced

Browse files
committed
Handle unique constraint exception
1 parent 5049dfc commit c512ced

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

backend/api/views/annotation.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from django.core.exceptions import ValidationError
12
from django.shortcuts import get_object_or_404
23
from rest_framework import generics, status
34
from rest_framework.permissions import IsAuthenticated
@@ -34,7 +35,11 @@ def create(self, request, *args, **kwargs):
3435
if self.project.single_class_classification:
3536
self.get_queryset().delete()
3637
request.data['example'] = self.kwargs['doc_id']
37-
return super().create(request, args, kwargs)
38+
try:
39+
response = super().create(request, args, kwargs)
40+
except ValidationError as err:
41+
response = Response({'detail': err.messages}, status=status.HTTP_400_BAD_REQUEST)
42+
return response
3843

3944
def perform_create(self, serializer):
4045
serializer.save(example_id=self.kwargs['doc_id'], user=self.request.user)

frontend/services/application/tasks/sequenceLabeling/sequenceLabelingApplicationService.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@ export class SequenceLabelingApplicationService extends AnnotationApplicationSer
2020

2121
public async create(projectId: string, docId: number, labelId: number, startOffset: number, endOffset: number): Promise<void> {
2222
const item = new SequenceLabelingLabel(0, labelId, 0, startOffset, endOffset)
23-
await this.repository.create(projectId, docId, item)
23+
try {
24+
await this.repository.create(projectId, docId, item)
25+
} catch(e) {
26+
console.log(e.response.data.detail)
27+
}
2428
}
2529

2630
public async changeLabel(projectId: string, docId: number, annotationId: number, labelId: number): Promise<void> {

0 commit comments

Comments
 (0)