Как стать автором
Обновить
10
0
Константин @madrider

Разработчик

Отправить сообщение

Глюк с раскладкой клавиатуры в Hardy

Время на прочтение1 мин
Количество просмотров556
В hardy есть маленький, но досадный глюк: если у вас включен автологин, после входа переключение раскладок не работает. Для того, чтобы заработало надо войти в параметры клавиатуры и что-нибудь изменить, например модель клавиатуры.
Лечится, как выяснилось, просто: нужно в настройках сессии добавить запуск утилиты setxkbmap
Всего голосов 12: ↑11 и ↓1+10
Комментарии8

Древовидные объекты в джанге

Время на прочтение1 мин
Количество просмотров2.3K
Работая над одним проектом, я столкнулся с необходимостью хранить подразделения компании в виде древовидной структуры. Реализовал я это так:

Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии6

На тему корневого каталога

Время на прочтение2 мин
Количество просмотров1.8K
Несмотря на все мои ухищрения и попытки сделать сайт на джанге каталого-независимым, я все же наткнулся на грабли, зарытые в самой джанге.

Напомню, весь сыр-бор из-за того, что у заказчика (да и у меня) корневая директория сайта — это не всегда корневая директория домена. Т.е. первая страница сайта часто расположена по адресу site/dj, по разным техническим причинам. Самая из них распространенная — наличие у заказчика каких-то модулей на PHP, которые лежат на том же сервере и тоже нужны.

Засада при этом заключается в том, что в шаблонах и httpredirect'ах необходимо задавать полные пути к страницам. И если внутри самой джанги этот путь еще понятен (хотя необходимость из view'а при httpredirect'е указывать полный путь к странице я считаю безобразием), то корневая директория может меняться. И перелопачивать потом весь код для ее исправления будет грустно.

Выход я нашел следующий: в settings.py прописывается переменная ROOT = '' и пишется небольшой templatetag:

root.py:
from django.template import Library

register = Library()

register.simple_tag
def root():
"""
Returns the string contained in the setting ROOT.
"""
try:
import settings
except ImportError:
return ''
return settings.ROOT


и все. Теперь в шаблонах после {% load root %} пишем в начале каждого пути {%root%} и получаем что хотели. В viewax, соответственно, используем для тех же целей settings.ROOT

Беда пришла откуда не ждали. Оказалось, что в недрах джанговского auth есть прибитый гвоздями путь '/accounts/login', на который перенаправляются запросы в случае необходимости авторизации. Выходов на данный момент я вижу два: либо не пользоваться стандартными декораторами для проверки залогинен ли пользователь (что неудобно), либо хакать саму джангу. Пока я пошел по второму пути, но это неправильно.

Я добавил в django/contrib/auth/__init__.py строчку
if hasattr(settings,'LOGIN_URL'): LOGIN_URL=settings.LOGIN_URL


и добавил в settings.py
LOGIN_URL = '%s/login/' % ROOT
Всего голосов 9: ↑5 и ↓4+1
Комментарии2

Опять про карты

Время на прочтение2 мин
Количество просмотров952
Недавно просматривал карту окрестностей своей работы с помощью замечательного ресурса piter.nakarte.ru и к своему удивлению нашел там довольно много неточностей. На карте была указана не существующая в природе улица (хотя в плане застройки района она была), а геометрия двух других не соответствовала действительности. Я бы с удовольствием исправил эти неточности, пользуясь своими GPS-треками, но увы. Никак.

Единственный известный мне сервис в интернете, предоставляющий возможность совместного составления и исправления карт — это проект «Нарисуй карту». Но там работа построена следующим образом: за каждым участком закреплен ответственный, которому все желающие отсылают свои треки с описанием тех мест, где они расходятся с картой, а он уже вносит изменения (когда у него дойдут руки обработать именно ваш трек).

Если представить себе идеальный картографический сервис, то, видится что-то вроде Википедии (вернее, нового ее варианта, где не так много анархии). Существует достаточное количество ГИС-расширений к свободным базам данных для хранения геоинформации. Есть более-менее доступные редакторы векторных карт, с авторами которых можно договориться о адаптации их решения к новому сервису. Если организовать хранение векторной карты в такой базе и механизм, дающий возможность пользователям производить изменения в этой базе с помощью некого клиента, мы получим действительно хорошую карту. Которую каждый сможет исправить и дополнить.

Да, идея слегка утопична. Да, она требует серьезной проработки и в плане разработки единого и удобного формата данных, и в плане безопасности, и в плане модерирования. Но мне кажется, она жизнеспособна.
Можно даже пойти дальше и представить, что одним из атрибутов объекта «дорога» является оценка ее качества (или оценка средней скорости движения по ней). Которая вычисляется как средняя оценка всех проголосовавших. Едешь ты по улице, матеря ямы и ухабы, можешь сразу на навигаторе оценку поставить, чтобы другие без нужды сюда не совались… И маршрут потом можно проложить с учетом качества дорог. Но это уже так, мечты.

Ну что, игроки гис-рынка, кто первый?
Всего голосов 19: ↑16 и ↓3+13
Комментарии19

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность