web2py DAL中的可变组件配置

2024-09-30 06:15:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些组件本身有一些设置。我希望能够为特定使用者配置每个组件(需要使用定义的设置+值调用组件)。我想使用SQLFORM.smartgrid用于将组件添加到使用者+设置。我尝试过很多方法,其中一些是成功的,但是问题是可以添加设置不属于这个特定组件的组件。也就是说,我可以在下拉列表中选择设置表中的每一个设置以及每个组件。你知道吗

下面是一些示例表(MySQL)来说明这一点:

enter image description here

这是实现这一目标的正确形式吗(从DB设计的角度来看也是如此)?如何在web2py中实现这一点?你知道吗

编辑:以下是屏幕截图的一些示例DB模型代码:

db.define_table(
    'Components',
        Field(
            'component_id',
            type = 'id'
        ),
        Field(
            'name',
            type = 'string'
        ),
        format = '%(name)s',
)

#--------
db.define_table(
    'ComponentSettings',
        Field(
            'componentsetting_id',
            type = 'id'
        ),
        Field(
            'component_id',
            db.Components
        ),
        Field(
            'name',
            type = 'string'
        ),
        format = '%(name)s',
)

#--------
db.define_table(
    'ComponentConsumers',
        Field(
            'componentconsumer_id',
            type = 'id'
        ),
        Field(
            'component_id',
            db.Components
        ),
        Field(
            'name',
            type = 'string'
        ),
        format = '%(name)s',
)

#--------
db.define_table(
    'ComponentSettingValues',
        Field(
            'componentsettingvalue_id',
            type = 'id'
        ),
        Field(
            'componentsetting_id',
            db.ComponentSettings
        ),
        Field(
            'component_id',
            db.Components
        ),
        Field(
            'componentconsumer_id',
            db.ComponentConsumers
        ),
        Field(
            'componentsetting_value',
            type = 'string'
        ),
        format = '%(componentsetting_value)s',
)

在这里您可以看到问题:

enter image description here


Tags: nameidformat示例fielddbstringtype

热门问题