我想删除一个特定的记录,比如:

delete from table_name where id = 1;

如何在django模型中做到这一点?


当前回答

延长沃尔夫投票最多的答案

注意,应该将request作为参数传递给视图中的delete函数。举个例子:

from django.shortcuts import redirect


def delete(request, id):
YourModelName.objects.filter(id=id).delete()

return redirect('url_name')

其他回答

有几种方法:

直接删除:

SomeModel.objects.filter(id=id).delete()

从实例中删除:

instance = SomeModel.objects.get(id=id)
instance.delete()

延长沃尔夫投票最多的答案

注意,应该将request作为参数传递给视图中的delete函数。举个例子:

from django.shortcuts import redirect


def delete(request, id):
YourModelName.objects.filter(id=id).delete()

return redirect('url_name')

我的做法是:

instance = SomeModel.objects.get(id=1)

instance.delete()

对我来说,这看起来很容易理解,这就是我使用这种方法的原因。

您可以直接从管理面板中删除对象,或者也可以通过输入python3 manage.py shell (Linux中的python3)从交互式shell中删除特定或选定的id。 如果你想让用户通过浏览器(提供可视化界面)删除对象,例如,从数据库中删除ID为6的员工,我们可以用以下代码实现这一点: Emp = employee.objects.get(id=6).delete()

这将删除ID为6的员工。

如果你想删除数据库中存在的所有雇员,而不是get(),指定all()如下所示: employee.objects.all () delete ()

MyModel.objects.get(pk=1).delete()

如果具有指定主键的对象不存在,这将引发异常,因为它首先尝试检索指定的对象。

MyModel.objects.filter(pk=1).delete()

如果具有指定主键的对象不存在,它不会引发异常,而是直接产生查询

DELETE FROM my_models where id=1