【问题标题】:How to allow empty form field in django如何在 django 中允许空表单字段
【发布时间】:2016-06-22 01:11:41
【问题描述】:

我目前正在处理的问题。我想允许空的 uuid 字段保存到数据库。

这是我的代码

models.py

mission_id = models.UUIDField(null=True, blank=True)

forms.py

class SomeForm(ModelForm):    
    class Meta:    
        model = SomeModel
        widgets = {
            'mission_id': TextInput(),
        }

但我收到一条错误消息

Enter a valid UUID.

【问题讨论】:

  • blank=True 应该已经做到了。该错误消息似乎很可疑;为什么它说UUID 而不是mission_id
  • 它还说“None”不是有效的 UUID
  • @JohnGordon 因为它是一个 uuid 字段

标签: python django forms


【解决方案1】:

由于UUID字段使用Python's UUID class,所以问题出现here

示例:

>>> import uuid
>>> uuid.UUID('')

Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
   uuid.UUID('')
File "C:\Python27\lib\uuid.py", line 134, in __init__
   raise ValueError('badly formed hexadecimal UUID string')
ValueError: badly formed hexadecimal UUID string
>>> 

---> UUID 字段不能为null=True

解决方案:1. 将其设为另一种 Field 类型或 2. 将某些内容传递给 Field

【讨论】:

  • 现在我明白了。你认为如果我通过0会好吗?还是您有其他建议?
  • @JamesReid 你到底想对这个字段做什么?它必须在整个表中是唯一的吗?该字段的预期用途是什么?
  • 我只想让这个字段为空,它不必是唯一的。非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 2016-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多