Администратор Silverstripe: выпадающий список «Имеет один» преобразуется в обычное поле ввода после импорта

У меня проблемы с администратором Silverstripe. Я определил модель базы данных (см. Определения классов ниже), и после того, как я выполнил разработку / сборку, все выглядит так, как ожидалось. Когда я пытаюсь добавить новыйпакет» все "есть один поля там с раскрывающимся списком (см. снимок экрана 1). Я также создал импортер, который импортирует эти пакеты. При запуске все выглядит нормально, кроме случаев, когда вы открываете пакет. Затем 'фестиваль» правильно связано. Вы можете увидеть имя, и вы можете выбрать раскрывающийся список. "Труппа»с другой стороны, таинственным образом преобразуется в поле ввода, в котором отображается только идентификатор записи в другой таблице (см. снимок экрана 2).

Кто-нибудь знает, что здесь происходит? Есть ли что-то, что вызывает такое поведение, о котором я не подозреваю? Что-то не так с моим кодом (да, но связан с этой проблемой? ;-))? Я проверил структуру таблиц, и там нет ничего подозрительного ...

До:

После:

Package.php

    class Package extends DataObject {
        public static $db = array(
            'Number'                    => 'Int',
            'Title'                     => 'Varchar(255)',
            'Description'               => 'HTMLText',
            'Credits'                   => 'HTMLText',
        );

        public static $has_many = array(
            'Events'    => 'Event',
        );

        public static $many_many = array(
           'Genres'            => 'Genre',
        );

        public static $has_one = array(
            'Festival'          => 'Festival',
            'Troupe'            => 'Troupe',
        );
    }

    class PackageAdmin extends ModelAdmin {
        public static $managed_models       = array('Package'); // Can manage multiple models
        static $url_segment                 = 'packages'; // Linked as /admin/packages/
        static $menu_title                  = 'Packages';
    }

Troupe.php

    class Troupe extends DataObject {
        public static $db = array(
            "Name"          => "Varchar(255)",
            "Description"   => "HTMLText",
            "Url"           => "Varchar(255)",
        );

        public static $has_many = array(
            'Packages'      => 'Package.Troupe',
        );
    }

    class TroupeAdmin extends ModelAdmin {
        public static $managed_models       = array('Troupe','Package'); // Can manage multiple models
        static $url_segment                 = 'troupes'; // Linked as /admin/troupes/
        static $menu_title                  = 'Troupes';
    }

Festival.php

class Festival extends DataObject {

    public static $db = array(
        'Name'          => 'Varchar(255)',
        'Description'   => 'HTMLText'
    );

    public static $has_many = array(
        'Packages' => 'Package.Festival'
    );
}

class FestivalAdmin extends ModelAdmin {
    public static $managed_models       = array('Festival','Package'); // Can manage multiple models
    static $url_segment                 = 'festivals'; // Linked as /admin/festivals/
    static $menu_title                  = 'Festivals';
}

Ответы на вопрос(1)

Ваш ответ на вопрос