feat: 修改mroombooking表约束

This commit is contained in:
caoqianming 2025-10-17 14:51:13 +08:00
parent 2ca47b8949
commit a3416cfc0d
3 changed files with 25 additions and 11 deletions

View File

@ -0,0 +1,17 @@
# Generated by Django 3.2.12 on 2025-10-17 06:50
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('ofm', '0021_alter_publicity_publicity_opinion'),
]
operations = [
migrations.AlterUniqueTogether(
name='mroomslot',
unique_together=set(),
),
]

View File

@ -45,9 +45,6 @@ class MroomSlot(BaseModel):
slot = models.PositiveIntegerField('时段', help_text='0-47') slot = models.PositiveIntegerField('时段', help_text='0-47')
is_inuse = models.BooleanField('是否占用', default=True) is_inuse = models.BooleanField('是否占用', default=True)
class Meta:
unique_together = ('mroom', 'mdate', 'slot', 'is_inuse')
# class Seal(BaseModel): # class Seal(BaseModel):
# """TN: 印章类型""" # """TN: 印章类型"""

View File

@ -37,10 +37,10 @@ class MroomBookingSerializer(CustomModelSerializer):
for slot in slots: for slot in slots:
if slot < 0 or slot > 47: if slot < 0 or slot > 47:
raise ParseError("时段索引超出范围") raise ParseError("时段索引超出范围")
try: ms_exists = MroomSlot.objects.filter(mroom=mroom, mdate=mdate, slot=slot, is_inuse=True).exists()
if ms_exists:
raise ParseError("时段已预订,请刷新重选")
MroomSlot.objects.create(booking=booking, slot=slot, mdate=mdate, mroom=mroom, is_inuse=True) MroomSlot.objects.create(booking=booking, slot=slot, mdate=mdate, mroom=mroom, is_inuse=True)
except Exception as e:
raise ParseError(f"时段已预订,请刷新重选-{e}")
return booking return booking
def update(self, instance, validated_data): def update(self, instance, validated_data):
@ -52,10 +52,10 @@ class MroomBookingSerializer(CustomModelSerializer):
for slot in slots: for slot in slots:
if slot < 0 or slot > 47: if slot < 0 or slot > 47:
raise ParseError("时段索引超出范围") raise ParseError("时段索引超出范围")
try: ms_exists = MroomSlot.objects.filter(mroom=mroom, mdate=mdate, slot=slot, is_inuse=True).exists()
if ms_exists:
raise ParseError("时段已预订,请刷新重选")
MroomSlot.objects.create(booking=booking, slot=slot, mdate=mdate, mroom=mroom, is_inuse=True) MroomSlot.objects.create(booking=booking, slot=slot, mdate=mdate, mroom=mroom, is_inuse=True)
except Exception as e:
raise ParseError(f"时段已预订,请刷新重选-{e}")
return booking return booking