peewee:当我创建()时,无效字段去哪里了?

peewee: Where does invalid field go when I create()?

在 Peewee 中,当我通过使用 无效 字段名称调用 create() 方法来创建实例时,我没有收到任何错误。它去哪儿了?就这样吗?

from peewee import *
from playhouse.shortcuts import model_to_dict

db = SqliteDatabase('/tmp/a.db')

class User(Model):
    name = CharField()
    class Meta:
        database = db

db.connect()
db.create_tables([User])

uid = User.create(name="John", foo="bar")
u = User.get_by_id(uid)
print(model_to_dict(u))  #=> {'id': 5, 'name': 'John'}

在上面的示例中,我在 class User 中没有 foo 字段,但是代码没有任何错误就结束了。

它被指定为对象的属性:

class Foo(Model):
    pass

f = Foo(a='something', b='another')
print(f.a)  # "something"
print(f.b)  # "another"