python - psycopg2.errors.NotNullViolation) el valor null para la columna «name» viola la restrictción not null
问题描述
我正在尝试为我的博客创建用户,但是当我尝试代码的功能时,它会给我一个错误,有人可以帮助我吗?
Error MSG
(psycopg2.errors.NotNullViolation) el valor null para la columna «name» viola la restricción not null
models,py
class User(db.Model, UserMixin):
__tablename__ = 'blog_user'
__table_args__ = { 'extend_existing': True}
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
email = db.Column(db.String(256), unique=True, nullable=False)
def show_signup_form():
if current_user.is_authenticated:
return redirect(url_for('public.index'))
form = SignupForm()
error = None
if form.validate_on_submit():
name = form.name.data
email = form.email.data
password = form.password.data
# Comprobamos que no hay ya un usuario con ese email o nombre
user = User.get_by_email(email)
name = User.get_by_name(name)
if user is not None:
error = f'El email {email} ya está siendo utilizado por otro usuario'
elif name is not None:
error = f'El Nombre de Invocador {name} ya está siendo utilizado por otro usuario si crees que se trata de un plagio contactate con nosotros'
# Creamos el usuario y lo guardamos
user = User(name=name, email=email,region=region, mainl=mainl, main2=main2)
user.set_password(password)
user.save()
# Enviamos un email de bienvenida
send_email(subject='Bienvenid@ al U-ProTeam',
sender=current_app.config['DONT_REPLY_FROM_EMAIL'],
recipients=[email, ],
text_body=f'Hola {name}, bienvenid@ a U-ProTeam',
html_body=f'<p>Hola <strong>{name}</strong>, bienvenid@ a U-ProTeam</p>')
# Dejamos al usuario logueado
login_user(user, remember=True)
next_page = request.args.get('next', None)
class SignupForm(FlaskForm):
name = StringField('Nombre de Invocador', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
password2 = PasswordField('Repeat Password', validators=[DataRequired(), EqualTo('password')])
email = StringField('Email', validators=[DataRequired(), Email()])
如果其余字段接受数据没有问题,我不明白为什么会出现错误。同样,当我删除 null 时,用户将我保存为 null 名称,这对我开发其余代码没有帮助
解决方案
谢谢,我已经发现错误是我有双重引用的名称,这就是为什么它没有保存名称,因为它对数据库进行了查询,结果将我抛出了 name = null 结果
推荐阅读
- excel - 使用 range.exporttopdf 方法时将图表对象保留在一张纸上的 Vba 代码
- java - 更改操作栏图标位置
- angular - 角 Nginx 码头工人 404
- laravel - Laravel 队列缓存未更新
- android-studio - 热修复 Android Studio 的文档查找“找不到文档”
- visual-studio - 无法登录到 Visual Studio。遇到意外字符“<”
- ios - collectionView didSlectRow 错误
- python - 将手动创建的 DOK 转换为 CSR
- selenium - 从所需功能创建会话时出错
- google-app-engine - 在谷歌应用引擎端点上部署反应快速应用程序,当我请求 url 时给出错误消息?