Как исправить AttributeError: объект «кортеж» не имеет атрибута «элементы» при создании нового пользователяPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как исправить AttributeError: объект «кортеж» не имеет атрибута «элементы» при создании нового пользователя

Сообщение Anonymous »

У меня есть несколько классов и их отношения вот так

Код: Выделить всё

class Account(db.Model, UserMixin):
id = Column(Integer, primary_key=True)
user_name = Column(db.String(50), nullable=False, unique=True)
password = Column(String(50), nullable=False)
create_day = Column(Date, default=date.today)
active = Column(Boolean, default=True)
user = relationship("User", backref="account", uselist=False)  # Thiết lập quan hệ 1-1

def __str__(self):
return self.user_name

class User(db.Model):
id = Column(Integer, primary_key=True)
last_name = Column(String(50), nullable=False)
first_name = Column(String(50), nullable=False)
gender = Column(String(50))
birth_day = Column(Date)
email = Column(String(50), unique=True, nullable=False)
image = Column(String(255), nullable=True)
phone_numbers = relationship('PhoneNumber',backref='user',  lazy=True)

account_id = Column(Integer, ForeignKey('account.id', ondelete='CASCADE'), nullable=False, unique=True)
role = Column(String(50), nullable=False, default="user")
__mapper_args__ = {
'polymorphic_identity': 'user',
'polymorphic_on': role
}

class Doctor(User):
id = Column(Integer, ForeignKey('user.id', ondelete='CASCADE'), primary_key=True)
specialty = Column(String(100), nullable=True)
degree = Column(String(100), nullable=True)
experience = Column(String(100),nullable=True)
current_workplace = Column(String(100),nullable=True)
exam_dates = relationship('ExamSchedule', backref='doctor', lazy=True)

__mapper_args__ = {
'polymorphic_identity': 'doctor',
}

class Nurse(User):
id = Column(Integer, ForeignKey('user.id', ondelete='CASCADE'), primary_key=True)

__mapper_args__ = {
'polymorphic_identity': 'nurse',
}

class Patient(User):
id = Column(Integer, ForeignKey('user.id', ondelete='CASCADE'), primary_key=True)
insurance_number = Column(String(50), unique=True, nullable=True)

__mapper_args__ = {
'polymorphic_identity': 'patient',
}

class Admin(User):
id = Column(Integer, ForeignKey('user.id', ondelete='CASCADE'), primary_key=True)

__mapper_args__ = {
'polymorphic_identity': 'admin',
}

class PhoneNumber(db.Model):
id = Column(Integer, primary_key=True)
number = Column(String(15), nullable=False, unique = True)
type_number = Column(String(50), nullable=False ,default="personal")
# user_id = Column(Integer, ForeignKey('user.id'), nullable=False)
user_id = Column(Integer, ForeignKey('user.id', ondelete='CASCADE'), nullable=False)
это мой файл admin.py:

Код: Выделить всё

from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from app.models import  User, PhoneNumber
from app.extensions import db

def init_admin(app):
admin = Admin(app, name="Admin Panel", template_mode="bootstrap4")
admin.add_view(ModelView(User, db.session))
admin.add_view(ModelView(PhoneNumber, db.session))

init.py:

Код: Выделить всё

from flask import Flask
from config import Config
from app.admin import init_admin
from config import Config
from app.extensions import db,migrate, login_manager
from app.models import *

def create_app():
app = Flask(__name__)
app.config.from_object(Config)
db.init_app(app)
migrate.init_app(app, db)
login_manager.init_app(app)
init_admin(app)
Config.init_cloudinary()
return app
requirements.txt:

Код: Выделить всё

alembic==1.14.0
blinker==1.8.2
certifi==2024.8.30
click==8.1.7
cloudinary==1.41.0
colorama==0.4.6
Flask==3.0.3
Flask-Admin==1.6.1
Flask-Login==0.6.3
Flask-Migrate==4.0.7
Flask-SQLAlchemy==3.1.1
Flask-WTF==1.2.2
greenlet==3.1.1
itsdangerous==2.2.0
Jinja2==3.1.4
Mako==1.3.6
MarkupSafe==3.0.2
PyMySQL==1.1.1
python-dotenv==1.0.1
six==1.16.0
SQLAlchemy==2.0.36
typing_extensions==4.12.2
urllib3==2.2.3
Werkzeug==3.1.2
WTForms==3.2.1
Почему поле «Номера телефонов» не отображается, когда я перехожу на страницу администратора/пользователя?
и когда я нажимаю кнопку «Создать» или «Изменить», оно отображается эта ошибка: AttributeError: объект «кортеж» не имеет атрибута «элементы»
как исправить ошибку?

Подробнее здесь: https://stackoverflow.com/questions/792 ... n-create-n
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»