Column () получил неожиданный ключевой аргумент «primary_key» - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь сделать небольшое приложение для Flask. Я создал пользовательский класс из quickstart flask-sqlalchemy. Но когда я пытаюсь запустить приложение, я получаю ошибку

Код:

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://test:test@localhost/test'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

class Install(db.Model):
    id = db.Column(db.String, primary_key=True)
    date = db.Column(db.DateTime(), nullable=False)
    service = db.Column(db.String(120), nullable=False)
    theme = db.Column(db.String(120), nullable=False)
    plain = db.Column(db.String(120), nullable=False)
    responsible = db.Column(db.String(120), nullable=False)
    sender = db.Column(db.String(120), nullable=False)

    def __init__(self, id, date, service, theme, plain, responsible):
        self.id = id
        self.date = date
        self.service = service
        self.theme = theme
        self.plain = plain
        self.responsible = responsible
        self.sender = sender

    def __repr__(self):
        return f"|{self.id}|{self.date}|{self.service}|{self.theme}|{self.plain}|{self.responsible}|{self.sender}|"

и ошибку:

  File ".../src/app/Model.py", line 17, in <module>
    class User(db.Model):
  File ".../src/app/Model.py", line 18, in User
    id = db.Column(db.String, primary_key=True)
TypeError: Column() got an unexpected keyword argument 'primary_key'

1 Ответ

1 голос
/ 17 октября 2019

Вы должны указать максимальную длину строки:

Попробуйте заменить id = db.Column(db.String, primary_key=True) на id = db.Column(db.String(50), primary_key=True)

Также рекомендуется иметь поле id в виде целого числа савтоинкрементный

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