Hello list, I'm new to SQLAlchemy, but not to Python. I have an application that's coming together, and relies on SQLAlchemy to talk to a database for many of the app's functions. Listing tables, listing records, updating records, pulling records for internal use, and so on.
My app is working, but so far I've been writing the framework and GUI with a bit of SQLite just to check that things are working how I want. Now, though, I'm getting into my first "real" user-facing database task: taking the values from a dialog and updating a record according to those values. Thus far, I'm having no luck. My organization for now is DBInterface.py, which holds all my table definitions, database details, and my base, session, and engine objects. I can hear the groans from here; I do plan to move the table definitions into a module of their own at some point, there simply hasn't been a need yet. GUIManager.py imports DBInterface, and handles all the GUI stuff, as the name suggests. It's where, eventually, I'll take user input and use it to update records by calling functions from DBInterface. That's the problem, though. In GUIManager, I have a simple test: self.records[self.selectedRecordIndex].name="test name" #records is the list of objects returned by querying the current table Which errors out every time: AttributeError: can't set attribute (Yes, "name" is an attribute name of my Customer class.) From what I've read thus far, updating records is as easy as modifying their properties and calling session.commit(). That isn't working, though. I imagine the problem is that the records in a query aren't the same as the records originally created, and modify/commit only works on those originals. I'm not sure if that's right, though. If it is, how could I modify the originals, given that I run a new query each time the user selects a table name in my GUI's list of names? If I'm wrong, how would I update the record attributes and save the changes back to the database? I think I'm picturing this whole thing wrong, to be honest. Thanks for any help, and please let me know if I need to provide more code or context. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
