Есть ли способ отфильтровать некоторые поля из формы CRUD Play? - PullRequest
2 голосов
/ 28 ноября 2011

Я использую этот тег в пользовательском представлении для создания формы CRUD для моего объекта:

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

Это создает форму CRUD внутри моего собственного представления. Есть ли способ настроить сгенерированную форму, удалив несколько полей, которые я не хочу редактировать?

Я заметил эту строку внутри form.html:

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

Если я читаю это правильно, то есть параметр _fields, который может позволить мне подписаться на поля (я предпочитаю отказаться, но я приму согласие). Как мне использовать этот параметр _fields?

Ответы [ 3 ]

4 голосов
/ 28 ноября 2011

Вы можете отфильтровать поля как:

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

, которые будут отображать только имя поля, адрес электронной почты и пароль

С уважением, Рональд

2 голосов
/ 28 ноября 2011

Я написал фильтрованную версию 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 голосов
/ 29 ноября 2011

Вы можете следить Играть документацию .Затем вы можете легко написать свой собственный класс ExtCRUD, который игнорирует все поля, объявленные в статической переменной вашего контроллера.Однако FilteredObjectType для особых случаев является более простым решением.

...