代码之家  ›  专栏  ›  技术社区  ›  tym

根据用户偏好显示字段

  •  0
  • tym  · 技术社区  · 2 年前

    我想知道是否有一种更干净、更简单、更实用的方法来实现下面的场景。

    目前,我允许用户在webapp中选择必填(红色)、可选(红色)或隐藏(黑色)字段(预定义)。我将用户的首选项存储在数据库中,例如 [input_field : user_choice] .

    由于bootstrap允许在一行中包含12列,所以我在想,如果添加额外的字段 [order, size] 我可以按适当的顺序分配必填字段和可选字段。 Size 范围为1-12和 order 可以有重复的值。

    enter image description here

    {'field_name': 'somename1', 'user_choice': 'Required', 'order': 1, 'size': 6},
    {'field_name': 'somename2', 'user_choice': 'Optional', 'order': 2, 'size': 6},
    {'field_name': 'somename3', 'user_choice': 'Required', 'order': 3, 'size': 12},
    {'field_name': 'somename4', 'user_choice': 'Required', 'order': 4, 'size': 6},
    {'field_name': 'somename5', 'user_choice': 'Hidden', 'order': 4, 'size': 6},
    {'field_name': 'somename6', 'user_choice': 'Hidden', 'order': 5, 'size': 6},
    {'field_name': 'somename7', 'user_choice': 'Required', 'order': 6, 'size': 6},
    {'field_name': 'somename8', 'user_choice': 'Hidden', 'order': 7, 'size': 6},
    {'field_name': 'somename9', 'user_choice': 'Hidden', 'order': 8, 'size': 3},
    {'field_name': 'somename10', 'user_choice': 'Hidden', 'order': 9, 'size': 3},
    {'field_name': 'somename11', 'user_choice': 'Optional', 'order': 10, 'size': 12}
    

    基于这一点,我将过滤以仅获取具有 要求的 可选择的 并以这样的方式循环,从而允许从添加到<=12 如果一行的大小已经为8,而下一个对象的大小为6,则将初始化新行,除非顺序值相同。

    这能以任何方式简化吗?

    0 回复  |  直到 2 年前