feat: serialize and save back_design in API

This commit is contained in:
Poker Design Developer
2026-06-03 22:13:13 +08:00
parent cea66988b8
commit 172c90be7f
2 changed files with 6 additions and 3 deletions

View File

@@ -9,7 +9,7 @@ class ProjectSerializer(serializers.ModelSerializer):
fields = [ fields = [
'id', 'name', 'template_id', 'id', 'name', 'template_id',
'card_width', 'card_height', 'card_width', 'card_height',
'design', 'card_overrides', 'number_layout', 'face_orientations', 'design', 'back_design', 'card_overrides', 'number_layout', 'face_orientations',
'export_resolution', 'export_include_back', 'export_resolution', 'export_include_back',
'created_at', 'updated_at', 'created_at', 'updated_at',
] ]
@@ -47,7 +47,7 @@ class ProjectDetailSerializer(serializers.ModelSerializer):
fields = [ fields = [
'id', 'name', 'template_id', 'id', 'name', 'template_id',
'card_width', 'card_height', 'card_width', 'card_height',
'design', 'card_overrides', 'number_layout', 'face_orientations', 'design', 'back_design', 'card_overrides', 'number_layout', 'face_orientations',
'export_resolution', 'export_include_back', 'export_resolution', 'export_include_back',
'assets', 'layers', 'assets', 'layers',
'created_at', 'updated_at', 'created_at', 'updated_at',

View File

@@ -26,6 +26,8 @@ def project_list(request):
data['card_overrides'] = Project._meta.get_field('card_overrides').default() data['card_overrides'] = Project._meta.get_field('card_overrides').default()
if 'number_layout' not in data: if 'number_layout' not in data:
data['number_layout'] = Project._meta.get_field('number_layout').default() data['number_layout'] = Project._meta.get_field('number_layout').default()
if 'back_design' not in data:
data['back_design'] = Project._meta.get_field('back_design').default()
# 抽出 template_id不写进 Project 字段) # 抽出 template_id不写进 Project 字段)
template_id = data.pop('template_id', None) template_id = data.pop('template_id', None)
serializer = ProjectSerializer(data=data) serializer = ProjectSerializer(data=data)
@@ -82,13 +84,14 @@ def project_save_design(request, pk):
except Project.DoesNotExist: except Project.DoesNotExist:
return Response({'error': 'Project not found'}, status=status.HTTP_404_NOT_FOUND) return Response({'error': 'Project not found'}, status=status.HTTP_404_NOT_FOUND)
for field in ('design', 'card_overrides', 'number_layout', 'face_orientations'): for field in ('design', 'back_design', 'card_overrides', 'number_layout', 'face_orientations'):
if field in request.data: if field in request.data:
setattr(project, field, request.data[field]) setattr(project, field, request.data[field])
project.save() project.save()
return Response({ return Response({
'ok': True, 'ok': True,
'design': project.design, 'design': project.design,
'back_design': project.back_design,
'card_overrides': project.card_overrides, 'card_overrides': project.card_overrides,
'number_layout': project.number_layout, 'number_layout': project.number_layout,
'face_orientations': project.face_orientations, 'face_orientations': project.face_orientations,