предварительно заполненные поля, доступные только для чтения, в колбе - PullRequest
0 голосов
/ 24 октября 2019

Я очень новичок в колбе и сборщике приложений для колб. У меня есть два вопроса, которые мне не удалось решить с помощью документации.

Есть ли способ сделать поля предварительно заполненными без использования пользовательских форм, и можно ли применить к этому полю настраиваемые валидаторы?


class BS3TextFieldROWidget(BS3TextFieldWidget):
    def __call__(self, field, **kwargs):
        kwargs['readonly'] = 'true'
        return super(BS3TextFieldROWidget, self).__call__(field, **kwargs)

class MyModelView(ModelView):
    datamodel = SQLAInterface(Mytable)
    base_filters = [['CAP_id', FilterEqualFunction, get_user]] #current user
     validators_columns = {
         'cap_id':[EqualTo(get_user, message='username must match CAP ID')]
     }
    edit_form_extra_fields = {'cap_id': TextField('cap_id',
                                    widget=BS3TextFieldROWidget())} 

Я хочу, чтобы CAP_ID был предварительно заполнен именем пользователя. Всякий раз, когда пользователь пытается ввести новую запись, cap_id должен быть проверен равным cap_id ИЛИ cap_id vsible, но доступен только для чтения.

В двух словах:

cap_id = g.user.username

Ошибка: ошибка целостности, возможно, уникальное ограничение

[SQL: INSERT INTO dealer (cap_id, field1, field2,) VALUES (?, ?, ?, )]
[parameters: (None, 'd103', 'Dr 106')]

Я также попробовал следующее (models.py):

class mymodel(Model):
id = Column(Integer, primary_key = True)
cap_id =Column(String(20), nullable = False, default = get_user()) 

Мой getuser () -

def get_user():
    return g.user.username

, это выдает мне ошибку: вне контекста. Я пытался использовать его с app_contex, но результаты те же.

Любая помощь или указания будут очень полезны. Благодарю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...