gpt4 book ai didi

python - Django clean_fields 和必填字段

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:57 27 4
gpt4 key购买 nike

在我的 models.py 中,我有一个字段:

content_type = models.CharField(u"Content type", max_length=20)

如您所见,这是强制性的。但我想自动给它赋值,所以我这样做了:

def clean_fields(self, *args, **kwargs):
print(kwargs)
self.content_type = "Whatever"

但是在 Django 的管理中,我收到一个验证错误,告诉我该字段是必需的。然而,当我查看 kwargs 的内容时,我得到:

{'exclude': ['id', 'created_on', 'modified_on', 'content_type', 'content_ptr']}

所以我的问题是:1) 为什么该字段出现在“排除”列表中?2)为什么Django会引发这个验证错误?

最佳答案

您可以像这样自动为模型分配一个值。

class ModelName(models.Model)    
content_type = models.CharField(u"Content type", max_length=20)

def save(self, *args, **kwargs):
if not self.pk:
self.set_content_type()
super(ModelName, self).save(*args, **kwargs)

def set_content_type(self):
self.content_type = 'Whatever'
self.save()

这样,每当创建该模型的实例时,该字段就会自动获取值。clean_field 用于验证表单字段。

关于python - Django clean_fields 和必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35171124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com