psycopg2.errors.NotNullViolation) el valor null para la columna «имя» viola la constración not null - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь создать пользователей для своего блога, но когда я пробую использовать функциональность кода, возникает ли ошибка, может ли кто-нибудь мне помочь?

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, и это не помогает мне в разработке остальной части моего кода

1 Ответ

0 голосов
/ 05 августа 2020

спасибо Я уже обнаружил, что ошибка заключалась в том, что у меня было двойное имя, и поэтому имя не было сохранено, так как он сделал запрос к БД, который бросил мне имя = нулевой результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...