我想在Flask-Admin模型列表视图中仅显示付费订单.
这是models.py:
class Order(db.Model):
id = db.Column(db.Integer, primary_key=True)
amount = db.Column(db.Integer)
description = db.Column(db.String)
paid = db.Column(db.Boolean, default=False)
Run Code Online (Sandbox Code Playgroud)
这是Flask-Admin的ModelView:
class OrderView(ModelView):
column_filters = ("paid")
admin.add_view(OrderView(Order, db.session))
Run Code Online (Sandbox Code Playgroud)
过滤器工作正常,但我想使此过滤器默认.或者更好的是,不要使用过滤器,只显示输出Order.query.filter(Order.paid==True)查询的订单.
是否可以使用Flask-Admin?
我正在尝试使用Flask-Admin的'master.html'模板扩展我的模板,如下所示:
{% extends 'admin/master.html' %}
{% block body %}
Hello!!!
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
我得到错误:
File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 894, in render
return self.environment.handle_exception(exc_info, True)
File "/Users/Slowpoke/Projects/Python/spider/spider/templates/form.html", line 1, in top-level template code
{% extends 'admin/master.html' %}
File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/Flask_Admin-1.0.6-py2.7.egg/flask_admin/templates/admin/master.html", line 1, in top-level template code
{% extends admin_base_template %}
File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/Flask-0.9-py2.7.egg/flask/templating.py", line 57, in get_source
return loader.get_source(environment, local_name)
File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg/jinja2/loaders.py", line 162, in get_source
pieces = split_template_path(template)
File "/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg/jinja2/loaders.py", line 29, in split_template_path
for piece in template.split('/'):
UndefinedError: 'admin_base_template' is undefined
Run Code Online (Sandbox Code Playgroud)
以下是我正在初始化Flask-Admin的方法: …
我正在使用Flask和pyMongo开发一个web应用程序,我最近开始集成Flask-Admin模块(1.0.4),给出了新的mongodb支持.
使用ModelViews时,一切都很顺畅,但是当涉及到BaseView的子类化时,我根本无法使它工作.
这是我的设置:
user_view = Admin(app, name='User stuff', url="/user", endpoint="user")
class ProfileForm(wtf.Form):
username = wtf.TextField('Username', [wtf.Required()])
name = wtf.TextField('Name', [wtf.Required()])
class Profile(BaseView):
@expose('/', methods=('GET', 'POST'))
def profile(self):
user = User(uid) # gets the user's data from DB
form = ProfileForm(request.form, obj=user)
if form.validate_on_submit():
data = form.data
user.set(**data)
user.save()
flash("Your profile has been saved")
else:
flash("form did not validate on submit")
return self.render('user/profile.html', form=form, data=user)
user_view.add_view(Profile(name='Profile', url='profile'))
Run Code Online (Sandbox Code Playgroud)
提交表单时,wtforms不会报告任何错误(除非有任何错误)但验证不会返回到我的配置文件视图(else:分支始终执行)
尽管已经彻底扫描了烧瓶管理员文档,源代码和示例,但我无法找到这项工作.
任何人都可以建议我如何修复我的代码,或解决这个问题?
任何人都可以告诉我如何将css类分配给选择值.我想用小图像改变每个选项的背景,那么我怎么能用wtforms和css做呢?
class RegisterForm(Form):
username = TextField('username', [validators.Length(min=3, max=50), validators.Required()])
img_url = SelectField('avatar',
choices=[('static/images/avatars/1.jpg', '1'),
('static/images/avatars/2.jpg', '2'),
('static/images/avatars/3.jpg', '3'),
('static/images/avatars/4.jpg', '4'),
('static/images/avatars/5.jpg', '5'),
('static/images/avatars/6.jpg', '6'),
('static/images/avatars/7.jpg', '7'),
('static/images/avatars/8.jpg', '8'),
('static/images/avatars/9.jpg', '9'),
('static/images/avatars/10.jpg','10')])
Run Code Online (Sandbox Code Playgroud)