django - 更新配置文件 Django 中所有用户的属性
问题描述
我有一个模型:
class GenerateCertificate(models.Model):
username = models.OneToOneField(User, on_delete=models.CASCADE)
cert_name = models.CharField(
max_length=15,
default='',
blank=True,
editable=False)
cert_password = models.CharField(
max_length=20,
default='',
blank=True,
editable=False)
key_name = models.CharField(
max_length=15,
default='',
blank=True,
editable=False)
def __unicode__(self):
return unicode(self.username)
我想更新属性cert_name
,cert_password
并在所有这些属性中key_name
设置值。''
通过以下方式为一个用户很容易做到这一点:
def DeleteUserData(self, request, queryset):
for qs in queryset:
username = str(qs.username)
#get user data from database
user = GenerateCertificate.objects.get(username__username=username)
keyname = user.key_name
certname = user.cert_name
GenerateCertificate.objects.filter(username__username=username).update(
cert_name='')
GenerateCertificate.objects.filter(username__username=username).update(
cert_password='')
GenerateCertificate.objects.filter(username__username=username).update(
key_name='')
但是如何一次为数据库中的所有用户执行此操作?
我正在使用 Django 2.0.6 和 Python 3.5
解决方案
GenerateCertificate
您可以一次更新模型的所有对象
data_dict = {'cert_name': '', 'cert_password': '', 'key_name': ''}
GenerateCertificate.objects.all().update(**data_dict)
推荐阅读
- reactjs - 如何用分钟和秒显示计时器
- java - 当我尝试通过 Amazon SES 发送邮件时,总是出现错误
- google-app-engine - 谷歌云平台(GCP)未知错误。原始错误消息:Operation failed: Insufficient CPU quota in region
- c# - Tabcontainer 控件在 ASP.NET 中的服务器上不可见
- testing - 获取solidity函数的返回元素
- macos - iMac 上的 Mysql:找不到命令
- arduino - 超声波传感器始终显示相同的距离
- redux - redux js工具包商店没有更新
- ftp - 同一文件夹中的两个图像可以具有相同的文件名但不同的元数据吗?
- unity3d - 如何使 XR 射线交互器面向不同的方向