Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 17, 2008 08:38:18

demas
От:
Зарегистрирован: 2008-09-10
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

[sqlalchemy] - удаление объектов

bw
Сложно сказать почему так получается, может ты не весь код показал? Если не добавляешь объект к сессии, то он не должен insert'иться.
Да, действительно - в чем причина пока не нашел, в выходные посмотрю. Но попробовал подготовить тестовый пример и проблема не повторилась:

#! /usr/bin/python
# -*- coding: utf-8 -*-

import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
from sqlalchemy.orm import mapper
from sqlalchemy.orm import sessionmaker
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relation

class User(object):
def __init__(self, name, fullname):
self.name = name
self.fullname = fullname

engine = create_engine('sqlite:///tutorial.db', echo = True)
Session = sessionmaker(bind = engine, autoflush=True, transactional = True)
metadata = MetaData()

users_table = Table('users', metadata,
Column('name', String(40), primary_key = True),
Column('fullname', String(100)))

metadata.create_all(engine)
mapper(User, users_table)
session = Session()

print "=========== Insert =============="

ed_user = User('ed', 'Ed Jones')
session.save(ed_user)
session.commit()

print "=========== Select =============="
new_user = session.query(User).filter_by(name='ed').first()
print new_user.name

print "=========== Strange Delete ============="
session = Session()
newUser = User('ed', 'Ed Jones')
session.query(User).filter_by(name = newUser.name).delete()
session.flush()
session.commit()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version