Форум сайта python.su
Всем привет,
у меня вопрос по работе с объектами. Я пишу что то типа адресной книги на питоне. Добавление адреса отлично работает, а вот с удалением какие-то проблеммы…
При выборе объекта для удаления, в url добавляется его ключ в БД в переменную adress. Я вот так считываю: adresse=self.request.get('adress')
В чем моя ошибка? Объект не считывается.
Заранее спасибо
Офлайн
sinitsaИ что хранится в переменной adresse?
В чем моя ошибка? Объект не считывается.
Офлайн
скорее всего эта переменная пустая, тк в if adresse: не выполняется.
Короче говоря, как мне считать URL а точнее какую-то его часть?
Офлайн
У объекта есть его имя в пределах контейнера. Оно же (в условиях стандартного поведения траверсера) и является последней частью его absolute_url. Оно находится в атрибуте __name__ объекта.
Вы можете взять __name__ объекта? (если нет, то это скорее недостаток дизайна. Можно, конечно взять из URL).
Тогда удалять так:
name = ob.__name__
del container[name]
Офлайн
Да, у меня имя объекта
astoon, но я не знаю какой объект выбрал пользователь.
является последней частью его absolute_url. Оно находится в атрибуте __name__ объекта.
Отредактировано (Май 25, 2010 10:09:56)
Офлайн
sinitsaЧто именно в url ?
Да, у меня имя объектаastoon, но я не знаю какой объект выбрал пользователь.
является последней частью его absolute_url. Оно находится в атрибуте __name__ объекта.
Т.е. при выборе пользователем адреса для удаления, его имя записывается в url и вот как это имя считать и есть мой вопрос.
Офлайн
Что касается вашего примера, я попробывала и у меня удаляются так все объекты, а не выбранный.
Про URL: при выборе объекта (radioButton нажатый рядом с выбранным объектом) в HTML файле в обработке нажатия radioButton к строке с адресом добавляется ключ, по которому можно найти данный объект:
code:[<input type=“radio” name=“group1” tal:attributes=“value python: s.name+s.vorname”
onclick=“document.location.href='adressbuch.html?adress='+this.value”>]
теперь, когда в строке url есть ключ, я хочу с этим объектом работать: изменять или удалять.
Как мне удалить именно этот объект?
Вот так выглядит url после выбора объекта:
http://localhost:8080/adressbuch/adressbuch.html?adress=SmithJohn
Офлайн
sinitsaНе знаю что такое s.vorname. Но предположим, что параметром adress Вы передаете имя объекта (у всех объектов, хранимых в контейнере, есть свое уникальное имя в пределах контейнера, оно же одновременно хранится (должно храниться, если объект реализует интерфейс zope.location.interfaces.ILocation) в его атрибуте __name__).
Что касается вашего примера, я попробывала и у меня удаляются так все объекты, а не выбранный.
Про URL: при выборе объекта (radioButton нажатый рядом с выбранным объектом) в HTML файле в обработке нажатия radioButton к строке с адресом добавляется ключ, по которому можно найти данный объект:
code:[<input type=“radio” name=“group1” tal:attributes=“value python: s.name+s.vorname”
onclick=“document.location.href='adressbuch.html?adress='+this.value”>]
теперь, когда в строке url есть ключ, я хочу с этим объектом работать: изменять или удалять.
Как мне удалить именно этот объект?
Вот так выглядит url после выбора объекта:
http://localhost:8080/adressbuch/adressbuch.html?adress=SmithJohn
name = self.request.get('adress')
del self.context[name]
Офлайн
name = self.request.get('adress')
if name:
del ...
Офлайн
sinitsaзначит параметр запроса ‘adress’ не передан. Ищите ошибку.
но вот if не выполнялся, переменная name почему-то NonType
Почему такое может быть?
Офлайн