2011-11-28 17 views
2

我使用这个标签中的自定义视图,来为我的对象CRUD形式:有没有办法从Play的CRUD表单中过滤一些字段?

<div class="configForm"> 
    #{crud.form /} 
</div> 

这产生我自己的看法里面CRUD形式。有没有办法通过删除一些我不想编辑的字段来自定义生成的表单?

我看准了这一线内form.html:

#{list items:_fields ?: currentType.fields*.name, as:'fieldName'} 

如果我读这个权利,然后有一个_fields参数,可能让我选择加入域(我宁愿选择退出,但我会采取选择)。我如何使用这个_fields参数?

回答

4

可以过滤像场:

#{crud.form fields:['name', 'email', 'password']/}

这将只显示字段名,电子邮件地址和密码

问候 Ronald

+0

修复了你的标签 - 谢谢! – ripper234

2

我写了一个filtered version CRUD的ObjectType。该控制器可以选择哪些字段进行过滤,像这样:

public static void show(long id) { 
    MyModel object = MyModel.findById(id); 
    CRUD.ObjectType type = new FilteredObjectType(MyModel.class, 
     "filteredField1", 
     "filteredField2"); 
    render(type, object); 
} 
+0

为什么@罗纳德的回答不是被接受的答案? – Stefano

+0

@Stefano - 好吧,从技术上讲,当我发布这个时,我想'过滤掉'字段,而不必明确写出我想要的字段列表。尽管如此,它已经足够接近了,也许比选择退出更有用。我会接受他的回答。 – ripper234

0

您可以关注Play documentation。然后,您可以轻松编写自己的ExtCRUD类,该类忽略在Controller的静态变量中声明的所有字段。如何FilteredObjectType是特殊情况下更容易的解决方案。

相关问题