![](/img/trans.png)
[英]How to delete data from database with a button using only DJANGO python, java script, and HTML?
[英]How to delete special data from database by python django
例如,我在数据库中有一个名为 BlackList 的表,如下所示:
表的 model 为:
class BlackList(models.Model):
list = models.CharField(max_length=1000, null=True, blank=True)
我尝试做的是:
if request.method == "POST":
username = request.POST.get('username') # Get username input first
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
BL = BlackList.objects.values_list('list', flat=True) # Read all data into array
if username in BL: # Check if the username is in blacklist
# Remove this username from the BlackList table
所以我的问题是如何删除特殊的特殊数据,例如,如果'aaa'尝试登录,那么'aaa'将从黑名单表中删除或删除。
有.delete
方法。 IE。 尝试这个:
if BlackList.filter(list=username).exists():
BlackList.objects.get(list=username).delete()
代替:
BL = BlackList.objects.values_list('list', flat=True) # Read all data into array
if username in BL: # Check if the username is in blacklist
# Remove this username from the BlackList table
您可以在https://docs.djangoproject.com/en/3.0/topics/db/queries/#deleting-objects和https://docs.djangoproject.com/en/3.0/ref/models/上阅读更多相关信息查询集/#exists
您可以将filter()
与first()
结合使用来获取现有用户名:
blacklist = Blacklist.objects.filter(username=username).first()
(如果没有匹配,这将返回None
。如果你使用get()
,你会得到DoesNotExist
错误——这不是首选。)
之后,您可以将其删除:
blacklist.delete()
实现您的目标需要 2 个查询(获取和删除)。
另一种方法是在不获取 object 的情况下将其删除:
Blacklist.objects.filter(username=username).delete()
该语句将仅使用一个等于DELETE FROM... WHERE username='username'
查询执行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.