Flask-WTForms和带有关系的SQLAalchemy SelectField

巴塞尔·哈马德(Basel J.Hamadeh)

我正在尝试从表单中获取数据,并使用SQLAlchemy将其发布到数据库中。我与产品模型中所示的类别和品牌模型有关系。但是我遇到一个错误:
AttributeError:'int'对象没有属性'_sa_instance_state'我不确定,但是我认为返回的是Category()对象,我必须将ID传递给实例化的Product()对象这里可能有什么问题?

模型

class Product(db.Model):
  # Table name
  __tablename__ = 'products'
  # Main Fields
  id = db.Column(db.Integer, primary_key=True)
  name = db.Column(db.String(255), nullable=False)
  slug = db.Column(db.String(255), nullable=False, unique=True)
  description = db.Column(db.Text(255), nullable=True)
  active = db.Column(db.Boolean)
  # Timestamps
  created = db.Column(db.DateTime(), default=datetime.utcnow)
  updated = db.Column(db.DateTime(), default=datetime.utcnow,
                      onupdate=datetime.now)
  # ForeignKeys
  category_id = db.Column(db.Integer, db.ForeignKey('categories.id'))
  brand_id = db.Column(db.Integer, db.ForeignKey('brands.id'))
  # Backref Relations
  category = db.relationship('Category', backref='products')
  brand = db.relationship('Brand', backref='products')

  def __repr__(self):
      return self.name

  def __unicode__(self):
      return self.name

形式

class ProductForm(Form):
  name = StringField('Name', validators=[Required(), Length(1, 255)])
  slug = StringField('Slug', validators=[Required(), Length(1, 255)])
  description = StringField('Description', validators=[Required(), Length(1, 255)])
  active = BooleanField('Active')
  category = SelectField('Category', coerce=int)
  brand = SelectField('Brand', coerce=int)
  submit = SubmitField('Add Product')

看法

@inventory.route('/product/new/', methods=['GET', 'POST'])
def add_product():
  form = ProductForm()
  categories = [(c.id, c.name) for c in Category.query.all()]
  brands = [(b.id, b.name) for b in Brand.query.all()]
  form.category.choices = categories
  form.brand.choices = brands
  if form.validate_on_submit():
    new_product = Product(name=form.name.data,
                          slug=form.slug.data,
                          description=form.description.data,
                          active=form.active.data,
                          category=form.category.data,
                          brand=form.brand.data)
    db.session.add(new_product)
    db.session.commit()
    flash('New Product has been added')
    return redirect(url_for('inventory.list_products'))
return render_template('inventory/form.html', form=form)
rmn

form.category.dataform.brand.data是ID。您需要以category_idbrand_id而不是category传递它们brand

new_product = Product(name=form.name.data,
                          slug=form.slug.data,
                          description=form.description.data,
                          active=form.active.data,
                          category_id=form.category.data,
                          brand_id=form.brand.data)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有UUID的Flask-WTF selectfield

来自分类Dev

Flask / Python / WTForms 验证和动态设置 SelectField 选项

来自分类Dev

Python Flask WTForms:动态SelectField返回“无效选择”

来自分类Dev

验证使用AJAX填充的FlaskForm(Flask-WTForms)SelectField

来自分类Dev

没有名为flask.ext.wtf.SelectField的模块

来自分类Dev

在SelectField flask-WTForms中初始化后设置默认值

来自分类Dev

No module named flask.ext.wtf.SelectField

来自分类Dev

wtforms SelectField始终返回None

来自分类Dev

带有SelectField的WTForms帖子不起作用

来自分类Dev

使用 SQL 查询填充 WTForms SelectField

来自分类Dev

WTForms 似乎无法验证 SelectField 框

来自分类Dev

Flask:使用带有关系的SQLalchemy模型填充WTform

来自分类Dev

WTForms,具有多个SelectField的表单吗?SelectFieldArray是否存在?

来自分类Dev

动态WTForms SelectField显示数据库中表的列标题

来自分类Dev

wtforms中的SelectField并通过javascript添加了<option>

来自分类Dev

在flask中,如何使用selectfield作为条件查询数据并分页显示

来自分类Dev

SelectField 的 Flask-WTF 默认值不适用于 SQLAlchemy 枚举类型

来自分类Dev

除TextField和SelectField之外的组件的错误文本

来自分类Dev

为什么我的 SelectField 和 RadioField 永远不会验证?

来自分类Dev

Flask WTForms中带有Java的加载程序

来自分类Dev

从表Flask SQLalchemy获取所有关系的列表

来自分类Dev

如何使烧瓶wtforms SelectField看起来像一个下拉列表?

来自分类Dev

SelectField选项使用WTForms动态填充TextAreaField中的默认值

来自分类Dev

如何使烧瓶wtforms SelectField看起来像一个下拉列表?

来自分类Dev

Flask:带有关键字参数的 API URL

来自分类Dev

带Flask,Flask-Admin和WTforms的DatePickerWidget

来自分类Dev

SelectField呈现unicode语法

来自分类Dev

用于 SelectField 的 getValue()

来自分类Dev

Flask wtforms访问和编辑配置数据

Related 相关文章

  1. 1

    具有UUID的Flask-WTF selectfield

  2. 2

    Flask / Python / WTForms 验证和动态设置 SelectField 选项

  3. 3

    Python Flask WTForms:动态SelectField返回“无效选择”

  4. 4

    验证使用AJAX填充的FlaskForm(Flask-WTForms)SelectField

  5. 5

    没有名为flask.ext.wtf.SelectField的模块

  6. 6

    在SelectField flask-WTForms中初始化后设置默认值

  7. 7

    No module named flask.ext.wtf.SelectField

  8. 8

    wtforms SelectField始终返回None

  9. 9

    带有SelectField的WTForms帖子不起作用

  10. 10

    使用 SQL 查询填充 WTForms SelectField

  11. 11

    WTForms 似乎无法验证 SelectField 框

  12. 12

    Flask:使用带有关系的SQLalchemy模型填充WTform

  13. 13

    WTForms,具有多个SelectField的表单吗?SelectFieldArray是否存在?

  14. 14

    动态WTForms SelectField显示数据库中表的列标题

  15. 15

    wtforms中的SelectField并通过javascript添加了<option>

  16. 16

    在flask中,如何使用selectfield作为条件查询数据并分页显示

  17. 17

    SelectField 的 Flask-WTF 默认值不适用于 SQLAlchemy 枚举类型

  18. 18

    除TextField和SelectField之外的组件的错误文本

  19. 19

    为什么我的 SelectField 和 RadioField 永远不会验证?

  20. 20

    Flask WTForms中带有Java的加载程序

  21. 21

    从表Flask SQLalchemy获取所有关系的列表

  22. 22

    如何使烧瓶wtforms SelectField看起来像一个下拉列表?

  23. 23

    SelectField选项使用WTForms动态填充TextAreaField中的默认值

  24. 24

    如何使烧瓶wtforms SelectField看起来像一个下拉列表?

  25. 25

    Flask:带有关键字参数的 API URL

  26. 26

    带Flask,Flask-Admin和WTforms的DatePickerWidget

  27. 27

    SelectField呈现unicode语法

  28. 28

    用于 SelectField 的 getValue()

  29. 29

    Flask wtforms访问和编辑配置数据

热门标签

归档