Найти - Пользователи
Полная версия: SQLObject и уникальные столбцы
Начало » Базы данных » SQLObject и уникальные столбцы
1 2
cleg
для тех кого я не достал ламерскими вопросами, еще один :-)

допустим у меня есть такой класс

class Person(SQLObject):
Name = UnicodeCol()
TabNo = StringCol(length=10)
нужно реальзовать такую фичу.
берем имя и табельый номер, если такого табельного номера еще нет - то добавляем нового человека с таким номером и именем.
если табельный номер в таблице имеется - то просто меняем имя на другое.
pythonwin
если быстро:
def change_name(old_name,prefix):
    return old_name+prefix
def main(name, TabNo):
    if Person.selectBy(TabNo=TabNo).count()==0:
        person1 = Person(name=name, TabNo=TabNo)
    else:
        new_name = change_name(name, '_1') ## хотя если это имя людей, то лучше спросить новые данные
        person1 = Person(name=new_name, TabNo=TabNo)
хотя лучше поставить alternateID = True и ловить ошибку IMHO
pythonwin
есть пример в http://sqlobject.org/SQLObject.html#many-to-many-relationships
http://sqlobject.org/SQLObject.html#many-to-many-relationships
>>> User.byUsername('bob')
<User 1 username='bob'>
>>> Role.byName('admin')
<Role 1 name='admin'>

посмотри
People.byTabNo
и
People.byTabNo(TabNo)
cleg
спасибо, пока решил тупо влоб - if Person.selectBy(TabNo=TabNo).count()==0
pythonwin
cleg
спасибо, пока решил тупо влоб - if Person.selectBy(TabNo=TabNo).count()==0
лучше сделай через
Person.byTabno(TabNo)
т.к. при этом возвращается только один объект если есть запись с таким табельным номером или если нет, то генерируется исключение
SQLObjectNotFound
cleg
а если просто - пытаться добавить, потом обрабатывать ошибку?
сделал так, вроде работает… :-)
pythonwin
cleg
а если просто - пытаться добавить, потом обрабатывать ошибку?
cleg
сделал так, вроде работает… :-)
код покажи, пожалуйста :)
Mkdir
SQLAlchemy
pythonwin
Mkdir
SQLAlchemy
ты хорошо знаешь SQLAlchmy?
сможешь запостить на форум код аналогичный моему?
cleg
Mkdir
не знаю…
а чем алхимия лучше? мне SQLObject как новичку показался роднее…
pythonwin
я ваще-то пытаюсь RSS агрегатор примитивнейший наваять, ща мабуть выложу эти 20 строчек кода в отдельную ветку… :-) так как возникло несколько вопросов.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB