다음과 같은 Flask-admin을 사용하여 간단한 양식을 만들었습니다. 현재 API 텍스트 필드 옆에 새로 고침 버튼을 만드는 방법을 살펴보고 있지만 실제로는 방법이 없습니다.Flask-admin은 텍스트 필드 옆에 버튼을 만듭니다.
위젯 또는 인라인 모델이라고 할 수 있습니까? 내가 사용할 수있는 WTForms에서 버튼을 찾을 수 없었습니다. 텍스트 필드를 재정의 할 수 있었지만 다른 요소를 쉽게 배치 할 수는 없으므로 이에 대한 예제를 알려 주시면 감사하겠습니다.
클래스 AdministratorView (sqla.ModelView) : PAGE_SIZE = 10
column_searchable_list = (
'username',
'description'
)
column_list = (
'username',
'apikey',
'description',
'active'
)
column_exclude_list = list = (
'apikey',
'auth_type'
)
form_excluded_columns = (
'auth_type',
'photos'
)
column_labels = {
'apikey': 'API Key'
}
form_widget_args = {
'apikey':{
'readonly':True
}
}
form_create_rules = (
rules.FieldSet(('username', 'password', 'description'), 'Personal'),
rules.FieldSet(('roles', 'apikey', 'active'), 'Permission'),
)
form_edit_rules = (
rules.FieldSet(('username', 'description'), 'Personal'),
rules.FieldSet(('roles', 'apikey', 'active'), 'Permission'),
rules.Header('Reset password'),
rules.Field('new_password')
)
def get_create_form(self):
form = self.scaffold_form()
form.username = fields.StringField('Username', [validators.Required()])
form.password = fields.PasswordField('Password', [validators.Required()])
return form
def get_edit_form(self):
form = self.scaffold_form()
delattr(form, 'password')
form.new_password = fields.PasswordField('New Password')
return form
def on_model_change(self, form, model, is_created):
if is_created is False:
if form.new_password.data:
model.password = generate_password_hash(form.new_password.data)
def is_accessible(self):
if login.current_user.is_authenticated:
return login.current_user.has_role('admin')
편집 : 나는 이와 같은 HTML 파일을 추가 헤더/H1으로 새로운 요소를 추가 할 수 있어요 :
{% extends 'admin/model/edit.html' %}
{% block body %}
<h1>My custom header</h1>
{{ super() }}
{% endblock %}
그러나 렌더링 된 양식에서 특정 필드를 변경하는 방법을 알 수 없습니다. edit.html에서 볼 수있는 것은 다음과 같습니다. rendered_form에 "들어가서"내 사용자 지정 단추를 추가하려면 어떻게합니까?
{% block edit_form %}
{{ lib.render_form(form, return_url, extra(), form_opts) }}
{% endblock %}
오히려 : 여기 는 플라스크-관리자 이름 필드에 버튼 가까이 배치 layout_bootstrap3 예를의 수정 된 버전입니다 , 검색하여 화면 판독기 사용자가 읽은 다음 필요할 경우 수정 및 테스트 용으로 복사하여 답을 제공합니다. –
admin 템플리트에 추가 버튼을 추가하려면 기본 템플리트를 대체하고 상속 된 템플리트에 단추를 추가해야합니다. https://flask-admin.readthedocs.io/en/v1.0.4/templates/ – MrLeeh
하나의 단일 필드에 대한 재정의를 만들 수 있습니까? 편집과 create.html을 모두 오버라이드 할 수 있습니다. – NeoID