- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
基于 this教程 我正在尝试创建一个表格来进行一些测量。显示数据的部分似乎可以正常工作,但是当使用 model_form
命令生成输入表单时,它会因以下错误而中断:
File "/myproject/lib/python3.4/site-packages/flask_mongoengine/wtf/orm.py", line 49, in convert 'description': field.help_text or '',
AttributeError: 'ObjectIdField' object has no attribute 'help_text'
错误发生在我的代码的这一行:
form_cls = model_form(Measurement, exclude=('id', 'created_at', 'comments'))
这是我的 view.py 代码:
from flask import Blueprint, request, redirect, render_template, url_for
from flask.views import MethodView
from flask.ext.mongoengine.wtf import model_form
from pyReefLog.models import Measurement
measurements = Blueprint('measurements', __name__, template_folder='templates')
class List(MethodView):
cls = Measurement
def get(self):
measurements = self.cls.objects.all()
return render_template('measurements/list.html', measurements=measurements)
class Detail(MethodView):
def get_context(self, creator=None):
form_cls = model_form(Measurement, exclude=('id', 'created_at', 'comments'))
if creator:
measurement = Measurement.objects.get_or_404(creator=creator)
if request.method == 'POST':
form = form_cls(request.form, inital=measurement._data)
else:
form = form_cls(obj=measurement)
else:
measurement = Measurement()
form = form_cls(request.form)
context = {
"measurement": measurement,
"form": form,
"create": creator is None
}
return context
def get(self, creator):
context = self.get_context(creator)
return render_template('measurements/detail.html', **context)
def post(self, creator):
context = self.get_context(creator)
form = context.get('form')
if form.validate():
post = context.get('post')
form.populate_obj(post)
post.save()
return redirect(url_for('measurements.index'))
return render_template('measurements/detail.html', **context)
# Register the urls
measurements.add_url_rule('/', view_func=List.as_view('index'))
measurements.add_url_rule('/create/', defaults={'creator': None}, view_func=Detail.as_view('create'))
measurements.add_url_rule('/<creator>/', view_func=Detail.as_view('edit'))
这是我的 models.py:
import datetime
from flask import url_for
from pyReefLog import db
class Comment(db.EmbeddedDocument):
created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
body = db.StringField(verbose_name="Comment", required=True)
author = db.StringField(verbose_name="Name", max_length=255, required=True)
class Measurement(db.Document):
created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
measured_at = db.DateTimeField(default=datetime.datetime.now, required=True)
alkalinity = db.DecimalField(default=0.0, precision=2)
calcium = db.DecimalField(default=0.0, precision=2)
magnesium = db.DecimalField(default=0.0, precision=2)
ph = db.DecimalField(default=0.0, precision=2)
phosphate = db.DecimalField(default=0.0, precision=2)
salinity = db.DecimalField(default=0.0, precision=2)
temperature = db.DecimalField(default=0.0, precision=2)
creator = db.StringField(required=True, max_length=255)
comments = db.ListField(db.EmbeddedDocumentField('Comment'))
def get_absolute_url(self):
return url_for('measurement', kwargs={"creator": self.creator})
def __unicode__(self):
return self.creator
meta = {
'allow_inheritance': True,
'indexes': ['-created_at', '-measured_at', 'creator'],
'ordering': ['-measured_at']
}
wtForms 教程都没有提到任何与 help_text 属性相关的内容。谁能明白那里出了什么问题?
最佳答案
编辑:
根据用户 Jérôme 的评论 #2,flask-mongoengine(和 mongoengine 0.10.5)的当前版本(本次编辑时为 0.7.5)开箱即用。经过测试和验证。
我正在做同样的教程,也遇到了那个错误。
我在 models.py 的字段(这些是 StringFields)中添加了 help_text="Your helptext here."
并解决了问题,但是您的错误指向 ObjectIdField,这使它成为更多令人费解。
所以这并不是非常有用,但也许它会在正确的方向上激励您。
编辑:
我为此纠结了一段时间,结果发现 mongoengine 发生了变化,破坏了 flask_mongoengine。 This commit in flask_mongoengine in turn fixes that.
至于实际解决方案,使用以前版本的 mongoengine (0.10.1) 对我有用。所以:
$ pip uninstall mongoengine
$ pip install mongoengine==0.10.1
关于 python wtf AttributeError : 'ObjectIdField' object has no attribute 'help_text' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34161163/
我想在此表单中添加一些帮助文本。 class ItemForm(forms.ModelForm): alternative_id = forms.CharField(max_length
我想在我的表单中添加帮助文本。但是,我希望它在输入框的右侧显示为一个小问号图标,单击时将显示 help_text。 我有一种方法可以通过 html 来完成,但是当我有多个带有 help_text 的字
我想知道在将 help_text 和其他硬编码的长行输入 Python/Django 时,行长的约定是什么。我已阅读 PEP-8,其中代码和注释涵盖了行长度,但我不确定这如何适用于长文本字符串。 这是
这有可能吗? 假设我有两种形式,一种形式是从另一种形式继承的,因为它们具有相似的字段且具有相同的验证。但是唯一的区别是他们有不同的帮助文本。我如何在这些表格上有两个不同的帮助文本? 最佳答案 试试这个
我想知道设置 verbose_name 的目的是什么?关于 Django 模型字段以及它与 help_text 有何不同。 Django 如何使用这些? 最佳答案 这些名称用于 Django admi
我可以在任何表单字段上设置 help_text 属性,但是是否可以在用于 RadioSelect() 的选项上设置 help_text 属性? 我正在寻找一种简洁的方式来在每个单选按钮下显示一些帮助信
我试图在管理面板上编辑用户时显示图像,但我不知道如何添加帮助文本。 我正在使用这个 Django Admin Show Image from Imagefield代码,工作正常。 然而short_de
如何在 django 中为我在 admin.py 中使用的搜索字段添加 help_text: class ProfileAdmin(admin.ModelAdmin): list_displa
我正在创建一个 custom ModelChoiceField 因此我可以显示外键的自定义标签,但这样做 Django 不再在表单上显示 help_text。如何取回帮助文本? models.py c
可能是一个糟糕的问题,但我正在使用 Django 的 UserCreationForm(稍作修改以包含电子邮件),并且我想删除 Django 自动显示在 HTML 页面上的 help_text。 在我
基于 this教程 我正在尝试创建一个表格来进行一些测量。显示数据的部分似乎可以正常工作,但是当使用 model_form 命令生成输入表单时,它会因以下错误而中断: File "/myproject
如何在verbose_name 或help_text 中使用带有重音符号或特殊字符(如ñ)的字母? 最佳答案 将此包含在文件的头部: # -*- coding: utf-8 -*- 然后使用这个: u
我有一个具有一个日期字段的 Django 模型。 class Employee(AbstractUser): dob = models.DateField(verbose_name="Date
当我为我的任何模型字段更改 help_text 或 verbose_name 并运行 python manage.py makemigrations 时,它会检测到这些更改并创建一个新的迁移,比如说,
我现在对 django 表单有一个小问题(但很烦人)。 我在用着: 推特 Bootstrap django floppyforms(仅适用于 html5 小部件) django crispy-form
我是一名优秀的程序员,十分优秀!