TurboGears2/SQLAlchemy:Вставка новой строки в таблицу с автоинкрементным первичным ключом

StackOverflow https://stackoverflow.com/questions/1366295

Вопрос

Я нуб и пытаюсь разобраться в 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 объясняет это
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top