我想删除一个特定的记录,比如:
delete from table_name where id = 1;
如何在django模型中做到这一点?
我想删除一个特定的记录,比如:
delete from table_name where id = 1;
如何在django模型中做到这一点?
当前回答
MyModel.objects.get(pk=1).delete()
如果具有指定主键的对象不存在,这将引发异常,因为它首先尝试检索指定的对象。
MyModel.objects.filter(pk=1).delete()
如果具有指定主键的对象不存在,它不会引发异常,而是直接产生查询
DELETE FROM my_models where id=1
其他回答
我的做法是:
instance = SomeModel.objects.get(id=1)
instance.delete()
对我来说,这看起来很容易理解,这就是我使用这种方法的原因。
它就像调用下面的代码一样简单。
SomeModel.objects.get(pk=1).delete()
# Or
SomeModel.objects.filter(pk=1).delete()
# SQL equivalent
# delete from table_name where id = 1;
如果您想根据id删除多条记录, 使用__in查询
SomeModel.objects.fitler(pk__in=[1,2,3,4,5,...]).delete()
# SQL equivalent
# delete from table_name where id in (1,2,4,5,...);
如果你想删除所有记录,使用.all()来检索所有查询, 然后delete()。
SomeModel.objects.all().delete()
# SQL equivalent
# delete from table_name;
MyModel.objects.get(pk=1).delete()
如果具有指定主键的对象不存在,这将引发异常,因为它首先尝试检索指定的对象。
MyModel.objects.filter(pk=1).delete()
如果具有指定主键的对象不存在,它不会引发异常,而是直接产生查询
DELETE FROM my_models where id=1
有几种方法:
直接删除:
SomeModel.objects.filter(id=id).delete()
从实例中删除:
instance = SomeModel.objects.get(id=id)
instance.delete()
如果你想删除一个项目
wishlist = Wishlist.objects.get(id = 20)
wishlist.delete()
例如,如果您想删除“愿望列表”中的所有项目
Wishlist.objects.all().delete()