我已经在Django中创建了一个模型,如下所示:
class LatestSavedKeyPassword(models.Model):
key_password = models.CharField(
max_length=20,
default='',
blank=True,
help_text="<b><a>System Generated, Do Not Alter</a></b>")
def __str__(self):
return self.key_password
现在,我想将值passwordval
保存到该字段中。
我想通过admin.py
在该模型中保存价值
def save_key_password(self, request):
LatestSavedKeyPassword.objects.update(
cert_password=password)
我可以这样保存值吗?
我也希望当我再次使用此模型时,以前的值会更新,并且不希望创建新条目。
如何做到?
我正在使用Django 2.0和python 3.5
答案 0 :(得分:0)
尝试覆盖save()
类的aa
方法
from django.core.exceptions import ValidationError
class LatestSavedKeyPassword(models.Model):
key_password = models.CharField(
max_length=20,
default='',
blank=True,
help_text="System Generated, Do Not Alter")
def __str__(self):
return self.key_password
def save(self, **kwargs):
if LatestSavedKeyPassword.objects.exists() and not self.pk:
raise ValidationError('your error message')
return super(LatestSavedKeyPassword, self).save(**kwargs)
如果数据库中存在至少一个LatestSavedKeyPassword实例,并且 LatestSavedKeyPassword.objects.exists()
返回True
如果刚创建实例,则self.pk
将是None
或类似的值。
参考:Allow only one instance of a model in Django