[英]Django model choice not raising error for an invalid choice
我在 Django 中有一個帶有選擇字段的 object
class CustomFieldType(models.Model):
STRING = 'STRING'
DATE = 'DATE'
BOOLEAN = 'BOOLEAN'
NUMERIC = 'NUMERIC'
EMAIL = 'EMAIL'
TYPE_CHOICES = (
(STRING, _('String')),
(DATE, _('Date')),
(BOOLEAN, _('Boolean')),
(NUMERIC, _('Numeric')),
(EMAIL, _('Email'))
)
name = models.CharField(max_length=256)
field_type = models.CharField(choices=TYPE_CHOICES, default=STRING, max_length=10)
company = models.ForeignKey('Company')
class Meta:
unique_together = ('name', 'company')
def __unicode__(self):
return self.name
在我的 django 控制台中
$> CustomFieldType.objects.create(name='custom_name',field_type='noError',company=mycompany)
<CustomFieldType: custom_name>
$> CustomFieldType.objects.get(name='custom_name').field_type
u'noError'
為什么 django 沒有引發錯誤 (ValidationError)? 或者我錯過了什么?
choices
選項僅用於預填充表單下拉字段; 它不強制執行任何驗證:
如果給出了這個,默認的表單小部件將是一個帶有這些選項的選擇框,而不是標准的文本字段。
我遇到了同樣的問題,我通過使用save()
方法而不是create()
方法解決了它,並且你必須在它之前使用full_clean()
。 像這樣:
x = "your model name"()
x."field" = "value"
.
.
.
"your model name".full_clean(self = x)
"your model name".save(self = x)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.