我得到的错误是TypeError: 'Query' object is not callable
。在
我在Pyramid中创建一个博客引擎,我陷入了QuerySelectField中,如何在名为categories的单独表中显示类别,而categories是Articles模型的外键?在
预期输出
Category Field Should Show all the Category present in Database to choose from.
模型.py
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()
class Category(Base):
__tablename__ = 'categories'
id = Column(Integer, primary_key=True)
name = Column(String(100), unique=True, nullable=False)
description = Column(Text, nullable=False)
class Article(Base):
__tablename__ = 'articles'
id = Column(Integer, primary_key=True)
title = Column(String(255), unique=True, nullable=False)
body = Column(Text, nullable=False)
category = Column(ForeignKey(Category.name), nullable=False)
created = Column(DateTime, default=datetime.datetime.now)
@property
def slug(self):
return urlify(self.title)
@property
def created_in_words(self):
return time_ago_in_words(Article.created)
视图.py
^{pr2}$表单.py
from models import DBSession
from models import Category
from wtforms import Form, TextField, TextAreaField, SubmitField, validators
from wtforms.ext.sqlalchemy.fields import QuerySelectField
def Category_choice():
return DBSession.query(Category.name)
class ArticleCreateForm(Form):
title = TextField('Title', [validators.required(), validators.length(min=1,max=240)])
body = TextAreaField('Content', [validators.required()])
category = QuerySelectField('Category', query_factory=Category_choice())
submit = SubmitField()
将此行从
query_factory=Category_choice()
更改为query_factory=Category_choice
,然后更改您的类别选择功能为
你的表格现在是这样的
^{pr2}$在你的类别模型中添加这个方法调用
详细说明请参考This Documentation。在
希望有帮助。在
相关问题 更多 >
编程相关推荐