TurboGears2/SQLAlchemy:Вставка новой строки в таблицу с автоинкрементным первичным ключом
-
21-09-2019 - |
Вопрос
Я нуб и пытаюсь разобраться в TG2 и SQLAlchemy.Конкретная проблема, с которой я борюсь в данный момент, заключается в том, как вставить новую строку в таблицу, когда поле PK настроено как автоинкрементное.
Например:
в моем файле myproject.model.myproject.py я определил следующую таблицу:
class Dj(DeclarativeBase):
__tablename__ = 'djs'
#{ Columns
djID = Column(Integer, autoincrement=True, primary_key=True)
djname = Column(String)
djwebpage = Column(String)
#}
В моем файле websetup.py я заполняю его некоторыми исходными данными.Поскольку это первая строка данных, я схитрил и просто определил djID равным "1".
dj = model.Dj("1", "DJ Anonymous", "http://www.djanonymous.com")
Если бы я хотел websetup.py создать вторую строку в таблице djs (через object Dj), как бы я это сделал?
Ранее я пробовал несколько разных способов, но безуспешно.Например, если я использовал тот же формат, но включил только 2 строки (для столбцов djname и djwebpage) Я получаю сообщение об ошибке с жалобой на то, что я не привел достаточно аргументов.
Конечно, в конечном счете, мне нужно выяснить, как создать контроллер, который позволит мне вставлять новые записи в таблицу...но я буду изучать шаг за шагом и буду благодарен просто за успешное предварительное заполнение таблицы несколькими строками с помощью файла websetup.py.Надеюсь, это даст мне подсказки, которые позволят мне перейти к следующему шагу.
Заранее спасибо!
Решение
Ну, ваша проблема проста (я впечатлен, что она так долго оставалась без ответа :).
- Во-первых, зачем называть свой идентификационный столбец "djID"?почему не просто удостоверение личности?
- Второй ты не надо вставьте в него, вот почему это автоинкремент.
- В-третьих , первый базовый Руководство SA объясняет это