- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 FormAlchemy 的新手,似乎我什么都不懂。我有一个像这样定义的 SQLAlchemy 模型:
...
class Device(meta.Base):
__tablename__ = 'devices'
id = sa.Column('id_device', sa.types.Integer, primary_key=True)
serial_number = sa.Column('sn', sa.types.Unicode(length=20), nullable=False)
mac = sa.Column('mac', sa.types.Unicode(length=12), nullable=False)
ipv4 = sa.Column('ip', sa.types.Unicode(length=15), nullable=False)
type_id = sa.Column('type_id', sa.types.Integer,
sa.schema.ForeignKey('device_types.id'))
type = orm.relation(DeviceType, primaryjoin=type_id == DeviceType.id)
...
然后在我的(Pylons) Controller 中创建一个 FormAlchemy 表单,如下所示:
c.device = model.meta.Session.query(model.Device).get(device_id)
fs = FieldSet(c.device, data=request.POST or None)
fs.configure(options=[fs.ipv4.label(u'IP').readonly(),
fs.type.label(u'Type').with_null_as((u'—', '')),
fs.serial_number.label(u'S/N'),
fs.mac.label(u'MAC')])
文档说“默认情况下,NOT NULL 列是必需的。您只能添加 required-ness,而不能删除它。”,但我想允许非 NULL 空字符串,validators.required
不允许。 Django 中有类似blank=True, null=False
的东西吗?
更准确地说,我想要一个如下所示的自定义验证器,以允许带有 type=None
的空字符串或将所有值设置为非 NULL 和非空:
# For use on fs.mac and fs.serial_number.
# I haven't tested this code yet.
def required_when_type_is_set(value, field):
type_is_set = field.parent.type.value is not None:
if value is None or (type_is_set and value.strip() = ''):
raise validators.ValidationError(u'Please enter a value')
如果可能,我想避免猴子修补 formalchemy.validators.required
或其他问题。我不想在模型字段上设置 nullable=True
,因为它似乎也不是合适的解决方案。
在这种情况下验证表单的正确方法是什么?感谢您提前提出任何建议。
最佳答案
终于找到了一个问题,但似乎这是唯一明智的方法:
fs.serial_number.validators.remove(formalchemy.validators.required)
fs.mac.validators.remove(formalchemy.validators.required)
对于验证器函数,当值为 None
时,FA 将完全跳过所有验证,因为按照惯例,它不会通过 None
到验证器(除非设置了 validators.required
,这是硬编码的)。我已提交增强请求 ticket试图解决这个问题。
关于python - 在 FormAlchemy 中不需要非 NULL 字段(允许空字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1459919/
编写自定义validators对于形式化学来说很简单。在验证 SOMEFIELD 期间,我可以使用 field.parent.SOMEOTHERFIELD.value 访问另一个字段值。 是否可以在验
我目前有两个独立的模型(如下所示),它们非常适合我的小规模/测试应用程序。然而,当有超过 5000 个客户时,每次输入注释时通过 FK 下拉框搜索都会很烦人。 我的问题是,我是否可以将 Note 模型
我有一个使用 formalchemy 管理界面的 Pyramid 项目。我添加了基本的 ACL 身份验证,即使我通过了身份验证,pyramid_formalchemy 插件也总是拒绝。 关于如何只允许
有人对在 django 项目中使用其他表单库感到高兴/痛苦吗(最初使用 SQLAlchemy 模型,但将来可能会与 django 模型一起使用)? 最初的印象是 sprox 更灵活、更解耦,但是 Fo
我正在尝试使用 Formalchemy 将新记录添加到我的 SQLAlchemy 表 DataTBL。 fs = FieldSet(DataTBL) fs.bind(DataTBL, request=
我是 FormAlchemy 的新手,似乎我什么都不懂。我有一个像这样定义的 SQLAlchemy 模型: ... class Device(meta.Base): __tablename__
我是一名优秀的程序员,十分优秀!