【发布时间】:2018-03-14 23:55:52
【问题描述】:
我有以下型号:
class Venue(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=1000, null=True, blank=True)
streetaddress1 = models.CharField(max_length=150)
streetaddress2 = models.CharField(max_length=150 ,null=True, blank=True)
approved = models.BooleanField(default=False)
declined = models.BooleanField(default=False)
eventplannerstaff = models.BooleanField(default=False)
declineddate = models.DateField(null=True, blank=True)
declineddatestring = models.CharField(max_length=50, blank=True, null=True)
declinereason = models.CharField(max_length=200, blank=True, null=True)
class Room(models.Model):
venue = models.ForeignKey(Venue, on_delete=models.CASCADE)
name = models.CharField(max_length=100, null=True, blank=True)
online = models.BooleanField(default=False)
description = models.CharField(max_length=1000, blank=True, null=True)
privateroom = models.BooleanField(default=False)
semiprivateroom = models.BooleanField(default=False)
seatedcapacity = models.CharField(max_length=10, null=True, blank=True)
standingcapacity = models.CharField(max_length=10, null=True, blank=True)
我有一个带有删除方法的 REST 端点。
我正在尝试删除一个房间。房间与场地相关联。我没有直接删除房间,因为我想用这种方法暴露场地。权限代码还没有写,但我想看看用户是否有权限乱搞场地房间。
删除方法有效,但实际上并未从数据库中删除房间。我究竟做错了什么?
def delete(self, request, *args, **kwargs):
venuepk = kwargs.get('venuepk', None)
venue = get_object_or_404(Venue, pk=venuepk)
venuerooms = venue.room_set.all()
roompk = kwargs.get('roompk')
roomobject = None
for room in venuerooms:
if room.pk == roompk:
roomobject = Room.objects.get(pk=roompk)
roomobject.delete()
roomobject.save()
return Response({})
return Response(status.HTTP_404_NOT_FOUND)
【问题讨论】:
标签: django django-models django-rest-framework sql-delete