代码之家  ›  专栏  ›  技术社区  ›  Josh Smeaton

是否有一个框架或模式来对数据应用过滤器?

  •  1
  • Josh Smeaton  · 技术社区  · 14 年前

    问题是:

    过滤器应如下所示:

    dataobject.key operator value
    

    if dataobject.key operator value 
    and dataobject.key2 operator value 
    or dataobject.key3 operator value
    

    也可能是任何条件句的组合,例如:

    if (condition and condition) or condition
    

    一些键将具有一组允许的值,而其他键将具有自由文本字段。此系统必须可供业务类型的最终用户使用,否则根本没有必要拥有此系统。主要目标是建立一个由最终用户完全管理的系统。如果这些目标大部分都能实现,我会认为这是一场胜利。

    规则引擎是否适合此场景?是否有一个python或django框架可用于实现这种行为或任何定义良好的模式?

    更新(基于S.Lott的回答):

    我不是说使用Django ORM过滤数据。我想把所有的数据和规则传递给javascript,这样javascript应用程序可以保持“断开连接”。

    1 回复  |  直到 14 年前
        1
  •  0
  •   S.Lott    14 年前

    Django过滤器可以很容易地堆在彼此的顶部。

    initial_query_set = SomeModel.objects.filter( ... some defaults ... )
    if got_some_option_from_javascript:
        query_set = initial_query_set.filter( this )
    else:
        query_set = initial_query_set
    if got_some_other_option:
        query_set = query_set.exclude( that )
    if yet_more:
        query_set = query_set.filter( and on and on )