Подклассы дуршлагов SchemaNode

Интересно, кто-нибудь может мне помочь? Я исследую деформацию и дуршлаг в новом проекте и следил за документацией о создании подклассов SchemaNode. Тем не менее, хотя в документации говорится, что

Подкласс может определять следующие методы и атрибуты: подготовитель, валидатор, по умолчанию, отсутствует, имя, заголовок, описание, виджет и after_bind.

когда я определяю заголовок, он, кажется, не проходит. Вот пример кода, который я использую:

class LocationSchemaNode(colander.SchemaNode):
    schema_type = colander.Int
    title = 'Location'
    missing = None
    validator = colander.Range(
       min=1,
       min_err='Please select a valid location'
    )

class PersonSchema(colander.Schema):

    location_id = LocationSchemaNode()

Однако, когда форма визуализируется, метка для поля будет "Location Id", а не "Location" согласно заголовку, определенному в SchemaNode. Если вместо этого я пишу:

class PersonSchema(colander.Schema):

    location_id = LocationSchemaNode(title="Location")

Тогда все появляется так, как я хочу, но в документации, похоже, говорится, что мне не нужно этого делать, и если я делаю это, то это отчасти лишает смысла предопределение SchemaNode, если мне нужно продолжать определять поля.

Я что-то упускаю или деформирую, делая что-то, чего не должно быть (я сомневаюсь, что так и будет). Буду признателен за любую оказанную помощь.

Кит

1 ответ

Решение

Это, похоже, ошибка, которая была исправлена: https://github.com/Pylons/colander/pull/183

Кроме того, похоже, что патч находится в последней доступной версии дуршлага, поэтому обновление до последней версии должно решить эту проблему.

Исправление:

Пример, приведенный в этом PR, точно соответствует этому вопросу, но данное исправление фактически не решает эту проблему! Итак, я подал другой PR, чтобы исправить эту проблему, и использовал пример, приведенный в #183, в качестве теста. Вы можете вручную исправить свою собственную копию, если не можете дождаться, когда исправление будет введено в репозиторий или следующий выпуск.

Другие вопросы по тегам