AttributeError: 'User' object has no attribute 'set_attrs'

来源:9-9 ORM的方式保存模型

SuccessorSocialism

2018-04-08

http://img.mukewang.com/szimg/5aca14b3000151f424381114.jpg

写回答

3回答

7七月

2018-04-09

你有在基类里添加这个方法吗?我课程应该是没有遗漏的啊。

0
5
SuccessorSocialism
回复
7七月
但是老师,在models/user.py中的 _passseord = Column('password',String(128)) 是不是把数据库中原有的password给覆盖掉了,我现在注册,报错说数据库中没有password这个字段。。
2018-04-10
共5条回复

jefflike

2018-04-08

//img.mukewang.com/szimg/5aca39dd00012f7206730329.jpg

这个。

1
1
SuccessorSocialism
有了的,但是为什么不知道它检测不到
2018-04-10
共1条回复

SuccessorSocialism

提问者

2018-04-10

base.py:

from flask_sqlalchemy import  SQLAlchemy
from sqlalchemy import Column, SmallInteger, Integer

db = SQLAlchemy()


class Base(db.Model):
    __abstract__ = True
    # create_time = Column('create_time',Integer)
    status = Column(SmallInteger,default=1 )


    def set_attrs(self,attrs_dict):
        for key,value in attrs_dict.items():
            if hasattr(self,key) and key != 'id':
                setattr(self,key,value)
                
                
auth.py:
from app.forms.auth import RegisterForm ,LoginForm
from app.models.base import db
from . import web
from app.models.user import User
from flask import render_template, redirect, request, url_for, flash
from werkzeug.security import  generate_password_hash

@web.route('/register',methods = ['GET','POST'])
def register():
    form = RegisterForm(request.form)

    if request.method == 'POST' and form.validate():
        user = User()
        user.set_attrs(form.data)
        db.session.add(user)
        db.session.commit()
        redirect(url_for('web.login'))
        # user.password = generate_password_hash(form.password.data)
        # user.nickname = form.nickname.data
    # request.form
    return  render_template('auth/register.html',form = form)


0
6
7七月
回复
SuccessorSocialism
好的。
2018-04-11
共6条回复

Python Flask高级编程之从0到1开发《鱼书》精品项目

7月老师深入浅出剖析Flask核心机制,和你一起探讨Python高级编程

2735 学习 · 1267 问题

查看课程