use*_*795 227 python django django-models
我想删除一个特定的记录.如
delete from table_name where id = 1;
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做django model呢?
Wol*_*lph 449
有两种方法:
要直接删除它:
SomeModel.objects.filter(id=id).delete()
Run Code Online (Sandbox Code Playgroud)
要从实例中删除它:
instance = SomeModel.objects.get(id=id)
instance.delete()
Run Code Online (Sandbox Code Playgroud)
小智 24
如果要删除一个实例,则编写代码
entry= Account.objects.get(id= 5)
entry.delete()
Run Code Online (Sandbox Code Playgroud)
如果要删除所有实例,请编写代码
entries= Account.objects.all()
entries.delete()
Run Code Online (Sandbox Code Playgroud)
lil*_*mad 15
如果要删除一项
wishlist = Wishlist.objects.get(id = 20)
wishlist.delete()
Run Code Online (Sandbox Code Playgroud)
例如,如果您想删除愿望清单中的所有项目
Wishlist.objects.all().delete()
Run Code Online (Sandbox Code Playgroud)
小智 9
该delete()方法用于从数据库中删除模型实例。该方法会立即删除该对象。该方法返回删除的对象的数量。
例子:
删除一条记录:
data_to_be_deleted = Modelname.objects.get(fieldname = value)
data_to_be_deleted.delete()
Run Code Online (Sandbox Code Playgroud)
由于 get 方法从查询集中返回单个对象,因此只会删除单个记录。如果提供的值不存在,这将引发错误。如果表中存在相同值的多条记录,那么它也会引发错误,所以好的做法是在使用 get 时使用单个唯一值。
根据条件删除多条记录:
对于基于条件的删除,在查询集上使用过滤方法,然后调用删除。
data_to_be_deleted = Modelname.objects.filter(fieldname = value)
data_to_be_deleted.delete()
Run Code Online (Sandbox Code Playgroud)
删除所有记录:
要从数据库表中删除所有模型实例/记录,您需要对所有模型实例/记录调用删除方法
data_to_be_deleted = Modelname.objects.all()
data_to_be_deleted.delete()
Run Code Online (Sandbox Code Playgroud)
注意:代码可以用单行编写Modelname.objects.all().delete(),但为了清楚理解,我使用了多行。
延长投票最高的答案。
请注意,您应该将请求作为参数传递给视图中的删除函数。一个例子是这样的:
from django.shortcuts import redirect
def delete(request, id):
YourModelName.objects.filter(id=id).delete()
return redirect('url_name')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
214890 次 |
| 最近记录: |