Django版本1.10,python版本3.4
我在manage.py shell中键入并执行此代码:
from tweet.models import Tweet
tweet = Tweet("Parse JSON like a boss", "Admin")
tweet.save()
并收到错误消息:
对于带有基数10的int()的无效文字:'Parse JSON就像一个Boss'
models.py:
class Tweet(models.Model):
text = models.TextField()
pub_time = models.DateTimeField(auto_now_add=True)
author = models.CharField(max_length=100)
class Meta:
ordering = ['-pub_time']
答案 0 :(得分:4)
如果没有为模型中的所有字段指定值,则应将您拥有的值作为名称值对发送。
Tweet(text="Parse JSON like a boss", author="admin")
事实上,最好始终这样做,以便将来对模型的更改不会破坏您的代码。这也是manual中推荐的方式:
要创建模型的新实例,只需将其实例化即可 其他Python类:
class Model(** kwargs)[source]¶关键字参数只是 您在模型上定义的字段的名称。注意 实例化模型绝不会触及您的数据库;为此,你 需要保存()。
答案 1 :(得分:0)
如果你不使用kwargs,那么django会按照你在内部字段字典(Source Code)内的字段相同的顺序迭代你提供的args,
它似乎正在尝试将您的文本分配给id参数,该参数只接受整数。
所以是的,正如e4c5所示,你最好不要使用kwargs。