未从数据库中删除的对象。Django,Django Rest框架
我有以下型号:未从数据库中删除的对象。Django,Django Rest框架,django,django-models,django-rest-framework,sql-delete,Django,Django Models,Django Rest Framework,Sql Delete,我有以下型号: 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_
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)
我有一个带有delete方法的REST端点
我正试图删除一个房间。房间与场地相连。我不是直接删除房间,因为我想用这种方法公开场地。权限代码尚未编写,但我想看看用户是否有权限在场馆房间内乱搞
delete方法正在工作,但实际上并没有从数据库中删除房间。我做错了什么
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)
实际上,您可以重新创建它们:
roomobject.delete()
roomobject.save()
第一行删除房间,第二行使用相同的ID再次保存房间。
如果要删除它们,只需调用.delete()
删除即可
roomobject.save()
它将对象写回数据库