这是我的model.py:
from django.db import models
class Code(models.Model):
code = models.CharField(max_length=10)
def __str__(self):
return self.code
但是当我进入shell时,会返回否错误:
In [1]: from mini_url.models import Code
In [2]: co = Code()
In [3]: co.save()
In [4]: co = Code("1234567891011")
In [5]: co.save()
我预计会有两个错误:
1 /来自co没有任何字段保存的事实,这是不可能的,因为没有null = True
2 /我保存了code
字段长于10的代码!
任何想法?
答案 0 :(得分:1)
CharField的空值为空字符串''
。
您实际上并未设置code
字段。你实际做的是设置id。
>>> co = Code("1234567891011")
>>> co.id
"1234567891011"
尝试:
co = Code(code="1234567891011")
co.save()
或者,如果你真的不想使用关键字参数:
co = Code(None, "1234567891011")
如果您使用强制执行长度限制的数据库(某些数据库e.g. SQLite,请不要这样做),它将引发异常。