В ваших forms.py
class FRM_LINE_REPORT(exform):
CompanyName = TextField(requiredlabel("Company Name", "*"), [validators.Required()])
В ваших models.py
class MKT_LINE_REPORT(exmodel):
CompanyName = db.Column(db.String(100))
В вашем html или Jinja: # не забывайте форму возврата = FRM_LINE_REPORT () к jinja или html
{{ form.CompanyName(class="form-control", placeholder="Company Name", autocomplete="True") }}
Шаблонные классы и функции не инстанцируют, пока они не используются, обычно в отдельном .cpp файле (например, источник программы). Когда шаблон используется, для компилятора нужен полный код для той функции, чтобы быть в состоянии создать корректную функцию с соответствующим типом. Однако в этом случае код для той функции детализирован в исходном файле шаблона и следовательно недоступный.
В результате всего этого компилятор просто предполагает, что определяется в другом месте и только вставляет вызов в шаблонную функцию. Когда дело доходит до компиляции исходный файл шаблона определенный шаблонный тип, который используется в источнике программы, не используется там, таким образом, это все еще не генерирует код, требуемый для функции. Это приводит к неразрешенной внешней ссылке.
решения, доступные для этого, к:
И 1 и 2 в основном решают проблему путем предоставления доступа компилятора к полному коду для шаблонной функции, когда это пытается создать введенную функцию в источнике программы.
Другая опция состоит в том, чтобы поместить код в cpp файл, и в тот же cpp файл добавляют явные инстанцирования шаблона с типами, которые Вы ожидаете использовать. Это полезно, если Вы знаете, что только собираетесь быть использованием его для нескольких типов, которые Вы знаете заранее.