[00:05:16] red-agent:
class Admin:
list_display = ('name', 'get_entry_count')
fields = (
(None, {'fields': ('name', 'entry_set')}),
(None, None)
)
[00:05:30] red-agent: матерится, что у модели нету entry_set
[00:05:36] wiz: We’ve found that Django lacks the rigor of Rails or Symfony, thus might not be an ideal choice for future projects.
rigor: озноб, оцепенение... wtf?
[00:05:51] wiz: red-agent, а оно есть?
[00:05:58] red-agent: дв
[00:06:01] red-agent: *да
[00:06:09] red-agent: tags = ManyToManyField(Tag, blank=True)
[00:06:12] wiz: прямо так entry_set = models.BlaBla?
[00:07:02] red-agent: хотя нахуй
[00:07:05] wiz: жди newforms-admin, там такие трюки можно будет делать вроде..
[00:07:05] red-agent: вопрос снят
[00:10:01] slav0nic: на webfaction хостился кто?
[00:20:53] slav0nic: http://www.vimeo.com/1223937
[00:21:45] slav0nic: http://autumn-orm.org/news/
лёгкий ОРМ от одного из контрибюторов джанги
[00:49:13] Хрюндель (джангист): red-agent, ты робот?
[00:50:39] red-agent: ?
[00:52:09] Хрюндель (джангист): red-agent, ты с утра хуяришь этот сайт.. Сколько тебе заплатили? ))
[00:52:26] red-agent: этот сайт я хуячу третий день
[00:52:29] Хрюндель (джангист): во во
[00:52:52] Хрюндель (джангист): 10k $ ин фор дэйс это про тебя что ли?
[00:56:34] Хрюндель (джангист): red-agent, кстати, ты таки сделал профиль через OneToOneField?
[00:58:06] Хрюндель (джангист): Тут целых три способа, один через OneToOneField, второй ForeignKey, третий заинхерить User и добавить полей.. Я как то с последнего начал, нагемороился и плюнул.. Щас форейджены юзаю, но что то тоже не радует что айди профиля и юзера разные.. Путает при разработке
[01:01:55] red-agent: Хрюндель (джангист): неа
[01:01:57] red-agent: не вышло
[01:09:17] red-agent: еще вопрос
[01:09:25] red-agent: есть base.html
[01:09:31] red-agent: никто напрямую его не рендерит
[01:09:36] red-agent: но все инхеритят
[01:09:44] red-agent: как туда можна передавать обьекты?
[01:10:01] Хрюндель (джангист): contextmanagers
[01:10:10] Хрюндель (джангист): да и любая вьюшка туда передаёт
[01:10:13] red-agent: понял
[01:10:22] red-agent: не, вьюшки не должны
[01:10:25] red-agent: об это знать
[01:10:38] Хрюндель (джангист): хмм.. не знаю не знаю.. вроде предают.. щас проверю
[01:10:48] red-agent: ты не понял
[01:11:08] red-agent: я имел ввиду - мне нужно сувать это impliciтно
[01:11:40] Хрюндель (джангист): передают
[01:12:50] Хрюндель (джангист): red-agent, конкретно ты что хочешь туда передавать? И на каких страницах?
[01:13:04] red-agent: на всех
[01:13:06] red-agent: сказал эе
[01:13:13] red-agent: base.html инхеритят ВСЕ
[01:13:18] Хрюндель (джангист): тогда contex manager
[01:13:24] red-agent: я понял
[01:13:26] red-agent: и свалил читать доки
[01:13:40] Хрюндель (джангист): подожди
[01:13:45] Хрюндель (джангист): red-agent, есть ещё вариант
[01:13:53] Хрюндель (джангист): red-agent, inclution_tag
[01:14:33] red-agent: уже читаю
[01:32:22] Хрюндель (джангист): хмм.. а так низя разве?
In [69]: marks_tuple
Out[69]:
{3: {'score': -1, 'num_votes': 1},
4: {'score': -2, 'num_votes': 2},
6: {'score': 2, 'num_votes': 2}}
[num_votes, score for element in marks_tuple.values() for score, num_votes in element.items()]
я не знаю насчёт того выдаст ли мне это нужный результат, но пока жалуется вообще на invalid syntax
[01:33:26] Хрюндель (джангист): а, понял
[01:41:57] Хрюндель (джангист): хуйня какая то.. Так что ли делать?
num_votes = [num_votes for element in marks_tuple.values() for num_votes in element.values()[1::2]]
score = [score for element in marks_tuple.values() for num_votes in element.values()[::2]]
[01:45:15] Хрюндель (джангист): В общем задача простая, как из этой фигни мне получить сумму score и сумму num_votes?
In [69]: marks_tuple
Out[69]:
{3: {'score': -1, 'num_votes': 1},
4: {'score': -2, 'num_votes': 2},
6: {'score': 2, 'num_votes': 2}}
[01:57:07] mishok13: >>> sum(x['score'] for x in d.values()), sum(x['num_votes'] for x in d.values())
(-1, 5)
[01:57:49] mishok13: /me slaps Хрюндель (джангист)
[02:02:27] Хрюндель (джангист): mishok13, никуя себе )) Надо будет записать этот примерчик ))
[02:03:51] mishok13: чего тут записывать?
[02:07:22] Хрюндель (джангист): mishok13, ну это я так понимаю не list comprehensions или как их там
[02:07:54] mishok13: правильно, это generator expression
[02:38:06] : This room is not anonymous
[02:38:06] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[02:57:28] red-agent: вопрос
[02:58:14] red-agent: есть Tag и связанный с ним через ManyToMany Entry, как отсортировать теги по кол-ву Entry?
[02:58:35] red-agent: Tag.objects.order_by('get_entry_count') - ругается
[02:58:40] red-agent: притом, такой метод есть
[02:58:46] red-agent: и из шелла все работает отлично
[03:28:56] : This room is not anonymous
[03:28:56] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[03:59:06] : This room is not anonymous
[03:59:06] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[04:29:17] : This room is not anonymous
[04:29:17] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[04:59:25] : This room is not anonymous
[04:59:26] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[05:29:35] : This room is not anonymous
[05:29:35] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[05:59:45] : This room is not anonymous
[05:59:45] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[06:29:55] : This room is not anonymous
[06:29:56] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[07:00:05] : This room is not anonymous
[07:00:06] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[07:30:15] : This room is not anonymous
[07:30:15] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[08:00:25] : This room is not anonymous
[08:00:26] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[08:17:22] red-agent: _lorien: тут?
[08:18:06] _lorien: ага
[08:18:12] red-agent: когда изменяю (r'^admin/', include('django.contrib.admin.urls')), на somethingelse, вместо admin - линки Documentation/Logout/etc - пустые
[08:18:56] _lorien: хз, посмотри в сорцах, как они формируются )
[08:19:42] red-agent: {% url django.contrib.auth.views.logout %}
[08:19:45] red-agent: как и должеы
[08:19:56] red-agent: тоесть должно возвращать нормальный урл
[08:19:57] red-agent: wtf?
[08:21:06] red-agent: гм, когда имя в пределах ascii - все ок
[08:21:08] red-agent: странно
[08:22:17] red-agent: вот блядь
[08:32:13] red-agent: проблема в ()
[08:32:26] red-agent: когда ( или ) - все работает
[08:32:28] red-agent: когда обе - облом
[08:32:35] red-agent: все ессесно заэскейпино
[08:33:52] red-agent: )( так тоже работает
[08:33:58] red-agent: а () - просто тупо нивкакую
[08:44:26] red-agent: там стопудово бак какой-то
[09:14:41] : This room is not anonymous
[09:14:41] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[09:44:46] : This room is not anonymous
[09:44:46] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[10:14:56] : This room is not anonymous
[10:14:56] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[10:16:12] Хрюндель (джангист): Шаломчеги
[10:46:16] : This room is not anonymous
[10:46:16] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[10:50:42] лорд Морфий: ку
[11:20:45] : This room is not anonymous
[11:20:45] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[11:24:58] ffzema: есть ли в каое либо специальное значение знак $ ?
[11:25:26] ffzema: или $%
[11:25:29] ffzema: ?
[11:30:51] Хрюндель (джангист): есть, в регексах
[11:30:55] Хрюндель (джангист): конец строчки $
[11:35:20] ffzema: а к регэкспам не относится """<?$%s??> """ % ("текст")
[11:35:30] ffzema: ?
[11:37:42] Хрюндель (джангист): ну тут ты вроде и не относишься.. всё должно работать
[11:38:09] Хрюндель (джангист): только это
[11:38:20] Хрюндель (джангист): ("текст",)
[11:38:24] Хрюндель (джангист): запятую не забывай
[11:38:29] Хрюндель (джангист): если тупл делаешь
[11:38:37] ffzema: ага
[11:39:01] ffzema: спасибо
[12:09:06] : This room is not anonymous
[12:09:06] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[12:23:45] red-agent: slav0nic: у тебя часом идей нет?
[12:23:52] red-agent: насчет этого бага с ()
[12:24:14] slav0nic: не, хз
[12:24:33] red-agent: вот бля
[12:26:34] Хрюндель (джангист): red-agent, подожди ещё денёк, замерджат newadmin-forms вдруг там пофиксили
[12:45:01] Хрюндель (джангист): red-agent, не знаешь как добраться до кеша из темплейта?
[12:45:15] red-agent: хз
[12:45:22] red-agent: до кеша еще руки не дошли
[12:47:32] red-agent: мне бы howto по пагинации
[12:48:25] red-agent: ато http://www.djangoproject.com/documentation/pagination/ я так и понял все картины
[12:48:39] red-agent: т.е. как передавать # страницы
[12:50:39] red-agent: прямо урлом по вьху что-л? о__0
[12:53:29] slav0nic: в смысле?
[12:53:51] red-agent: да я вобще не вкуриваю весь этот механизм
[12:54:42] red-agent: http://www.djangoproject.com/documentation/models/pagination/ прочел
[12:54:48] red-agent: но общей картины не доганяю
[12:54:55] red-agent: как это должно выглядеть
[12:55:02] slav0nic: http://dumpz.org/1571/
[12:55:18] slav0nic: только лучше ещё темплейтегом разруливать
[12:55:59] red-agent:
return render_to_response('main.html', {
'Main_news': page_news,
'page_range': paginator.page_range,
'has_next': page_.has_next(),
'has_previous': page_.has_previous(),
'has_other_pages': page_.has_other_pages(),
'current_page' : page,
'previous_page': page - 1,
'next_page': page + 1,
'url': '/news/page',
},
context_instance=RequestContext(request)
)
[12:56:06] red-agent: а не проще передать пагинатор туда?
[12:56:31] slav0nic: я об этом и грю
[12:56:43] Хрюндель (джангист): red-agent, конечно проще.. а лучше декоратором всё это сделать
[12:56:58] red-agent: а можна как-нить по-другому данные передавать
[12:57:05] red-agent: getом например
[12:57:40] Хрюндель (джангист): red-agent, а как же красивые урлы?
[12:58:04] red-agent: ну, учитвая, что у меня идет blog/id
[12:58:06] red-agent: на посты
[12:58:20] Хрюндель (джангист): red-agent, ща подожди я тебе свой декоратор покажу
[12:58:57] slav0nic: http://www.ninjacipher.com/2007/12/27/django-pagination-wrapper/
мож так сделать
[12:58:59] Хрюндель (джангист): red-agent, http://dumpz.org/1572/
[13:10:54] red-agent:
===Template==
{% for article in articles %}
{{ article.name }} <br />
{% endfor %}
<br />
{% if page.previous_exists %}<a href="/{{ page.previous_page_number }}/">previous</a>{% endif %}
{% if page.next_exists %} <a href="/{{ page.next_page_number }}/">next</a> {% endif %}
"""
[13:11:03] red-agent: Хрюндель (джангист): а как ты с урлами поступаешь?
[13:19:14] Хрюндель (джангист): red-agent, в каком смысле?
[13:19:42] red-agent: номер страницы как передаешь?
[13:20:08] Хрюндель (джангист): ну так вроде /(\d+)/$
[13:20:14] red-agent: блядь
[13:20:21] Хрюндель (джангист): или внутри темплейта?
[13:20:50] Хрюндель (джангист): {% url name page.page_num %} вроде так
[13:50:55] : This room is not anonymous
[13:50:55] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[14:21:05] : This room is not anonymous
[14:21:05] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[14:51:15] : This room is not anonymous
[14:51:16] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[15:21:26] : This room is not anonymous
[15:21:26] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[15:24:52] mobnet: Привет народ как задать константу?
[15:25:26] Хрюндель (джангист): a = "something"
[15:25:32] Хрюндель (джангист): string и есть константа
[15:25:40] Хрюндель (джангист): его нельзя менять inplace как говорится
[15:27:12] wiz_: mobnet, а зачем?
[15:28:07] mobnet: Гм а чтоб переменная созданая в пользовательской функцие была доступна за пределами функции эт нада global name_var?
[15:29:37] mobnet: wiz_> mobnet, а зачем?
Ну чтоб использовать ее значения
[15:29:58] tek: Ты на чистом питоне программируешь?
[15:30:11] mobnet: Да
[15:30:16] wiz_: mobnet, ну не изменяй её и всё. вот тебе и константа (=
[15:30:28] wiz_: или тебе глобальная переменная может нужна?
[15:30:46] tek: переменные можно импортировать вроде как :)
[15:31:30] tek: создай себе файлик variables.py и держи там свои переменные :) А потом оттуда импортируй и используй :\
[15:31:51] mobnet: Ну вроди как глобальная она будит создана в функцие
[15:32:02] red-agent: queryset - ленивый?
[15:32:09] wiz_: ред, да
[15:32:16] wiz_: кроме того ещё и кэширующий
[15:32:20] red-agent: тоесть если я сделаю all() но пройдусь только по 5 - то вытащатся 5 из базы?
[15:32:29] wiz_: нет
[15:32:37] red-agent: ну слайсом
[15:32:39] red-agent: пройдусь
[15:32:44] slav0nic: блин чё за нах
x = get_object_or_404(User.objects.get(id=1))
кричит
get() returned more than one User -- it returned 2! Lookup parameters were {}
хотя
In [17]: User.objects.get(id=1)
Out[17]: <User: sl>
[15:32:45] wiz_: но если ты сделаешь .all()[:5], то вытащатся только 5
[15:32:53] red-agent: именно
[15:32:55] wiz_: и в SQL будет LIMIT 5
[15:32:59] red-agent: а .count()
[15:33:06] red-agent: он не вытащит все?
[15:33:08] slav0nic: не
[15:33:10] wiz_: нет
[15:33:13] red-agent: ок тогда
[15:33:16] wiz_: он тупо select count(*) сделает
[15:33:23] wiz_: каунт сцуко ленивый (=
[15:33:41] slav0nic: атветьте на мой вопрос, пжалуйста В)
[15:34:15] red-agent: wiz_: я в курсе, прочел уже
[15:34:19] red-agent: просто хотел удостоверится
[15:34:23] wiz_: slav0nic, хуйню написал, хуйню получил (=
[15:35:00] wiz_: x = get_object_or_404(User, pk=1)
[15:35:07] slav0nic: ну уже сделал так
[15:35:17] slav0nic: но мля как в первом варианте тож вроде можно
[15:35:26] slav0nic: а ёпт, или то в гет обджекст только
[15:36:39] slav0nic: просто раньше юзал например такую хню
get_object_or_404(Section.objects.filter(slug=slug))
[15:42:29] red-agent: а если я сделаю сделаю 2 раза одинаковый слейс
[15:42:33] red-agent: кеш юзается?
[15:42:38] red-agent: или обьекты перевытянутся
[15:42:38] wiz_: вроде да
[15:42:39] red-agent: ?
[15:43:14] wiz_: я бы закешировал (=
[15:43:24] red-agent: это нада делать explicitно?
[15:51:09] Хрюндель (джангист): slav0nic, ты что там мутишь..
[15:51:25] Хрюндель (джангист): get_object_or_404(User, pk=1)
[15:55:08] slav0nic: млять делал через жопу потомучто с каким-то транком у меня не работало)
[16:02:35] red-agent: бля
[16:02:44] red-agent: 50 запросов к бд, это нормально?
[16:04:06] wiz_: нет
[16:05:02] slav0nic: гыгы
[16:05:11] slav0nic: select_relate() )
[16:05:19] slav0nic: в шаблоне видать чёт дёргаешь
[16:05:25] slav0nic: что есть FK
[16:12:57] red-agent: что еще, есть для оптимизации?
[16:13:22] slav0nic: red-agent, ты запросы в шалоне выведи и глянь из-за чего они
[16:37:49] red-agent: а как их вывести-то?
[16:37:53] red-agent: через миддлвар?
[16:46:21] wiz_: можно и так
[16:51:11] slav0nic: red-agent, django.core.context_processors.debug
[16:51:54] red-agent: да ужь разобрался
[16:51:58] red-agent: и без него
[16:51:58] slav0nic: я иклудю в футер debug.html
http://www.djangosnippets.org/snippets/93/
[16:52:06] slav0nic: всё равно удобно)
[17:00:35] Лис: о тщорт
from django.contrib.auth.models import User, Group
from django.db import models
from django.utils.translation import gettext_lazy as _
[17:12:05] red-agent: так
[17:12:10] red-agent: насувал select_related()
[17:12:20] red-agent: везде где можна
[17:12:23] red-agent: в блоге еще многовато
[17:12:25] red-agent: 37 реквестов
[17:13:44] wiz_: надо не больше 10
[17:17:32] nileriver: блин
[17:17:39] nileriver: Добрый вечер уже.
[17:18:17] red-agent: wiz_: какие еще есть методики?
[17:19:06] nileriver: вопрос. пишу парсилку для поиска по торрент-ру. сервак вроде как выдает cp1251. Так? читаем стандартными методами через urllib2. Под вендой на работе все работало на ура.. Тут даже не проверить что он распарсил. Потому как кодировки. =)
[17:19:12] nileriver: Что происходит:
[17:19:35] nileriver: парсим. вытаскиваем из того что пришло то что нужно. print matches.group(1) ведет к кракозябрам.
[17:19:50] nileriver: отлаживаю на локали утф-8 под эклипсом
[17:19:57] red-agent: парсь в юникод
[17:20:08] red-agent: re компилируй с флагом re.UNICODE
[17:20:12] nileriver: стой
[17:20:16] nileriver: понимаю чт ов уникод парсить
[17:20:20] red-agent: и только потом уже работай с паттернами
[17:20:29] red-agent: nileriver: и что не непонятного?
[17:20:33] nileriver: погоди )
[17:20:41] red-agent: делаешь unicode(text, 'cp1251')
[17:20:42] wiz_: red-agent, кэширование
[17:20:44] nileriver: да
[17:20:50] red-agent: ну и все
[17:20:52] nileriver: но оно слетает с UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-10: ordinal not in range(128)
[17:20:59] nileriver: вопрос кобственно какого черта
[17:21:02] nileriver: =)
[17:21:04] wiz_: блог вообще можно с 0 запросов на страницу делать
[17:21:05] red-agent: 8\
[17:21:10] Лис: red-agent, такида, кэшированием :)
[17:21:12] nileriver: я вообще с этими проблемами не сталкивался..
[17:21:14] red-agent: покажы строку кода
[17:21:15] red-agent: nileriver:
[17:21:17] nileriver: потому туплю
[17:21:19] Лис: load_related юзай
[17:21:21] nileriver: щас
[17:21:21] Лис: из BF
[17:21:24] red-agent: wiz_: а подробнее?
[17:21:36] red-agent: дока есть какая-нить?
[17:21:52] wiz_: !google django python cache framework
[17:22:00] wiz_: цук
[17:22:24] nileriver: red-agent: http://dumpz.org/1573/
[17:22:30] Лис: red-agent, http://hg.piranha.org.ua/byteflow/file/b9f7d72cbec2/apps/lib/db.py#l75
[17:22:33] wiz_: http://www.djangoproject.com/documentation/cache/
[17:22:34] nileriver: search_results нас интересует
[17:22:42] Лис: тосюда выдёргивай весь db.py
[17:22:45] nileriver: либо я туплю как последний.. либо что-то тут не то
[17:22:59] wiz_: nileriver, а у тебя в системе дефолтная какая кодировка?
[17:23:09] nileriver: сказал же локаль утф-8
[17:23:18] wiz_: а у питона?
[17:23:20] nileriver: дома на лаптопе бубунта
[17:23:22] red-agent: я ж сказал
[17:23:23] wiz_: в sitecustomize.py
[17:23:31] nileriver: red-agent: про re?
[17:23:32] red-agent: nileriver: сразу после получения текста
[17:23:40] red-agent: и да
[17:23:47] red-agent: флаг UNICODE
[17:23:51] nileriver: хм.
[17:24:04] nileriver: учитвая что отлаживаю под бубунтой на ноуте.. факинг шит.. перекомпиливать для этого..
[17:24:25] nileriver: а кстати щас проверю.
[17:24:53] nileriver: нормально ли он читает
[17:25:00] red-agent: lol
[17:25:05] red-agent: ты больной? :)
[17:25:14] red-agent: reg.exp скомпилировать я сказал
[17:25:38] red-agent: pattern = re.compile(r'.+', re.UNICODE)
[17:26:06] nileriver: аа.. фак
[17:26:20] nileriver: я не больнйо я на яве пишу.)) а питоном занимаюсь дома ради собственного удовольствия)
[17:26:20] Лис: :)
[17:26:37] nileriver: хорошая кстати формулировка.. я не больной я на яве пишу.
[17:26:39] nileriver: но
[17:26:48] nileriver: приходит тоже не слишком понятно в чем.
[17:27:04] nileriver: во всяком случае после чтения.. хотя это как раз нормально. в cp же.
[17:27:20] red-agent: сдоровый человек писать на яве не может по-определению
[17:27:48] nileriver: Мм...
[17:27:52] nileriver: Лоровец? =))
[17:28:10] red-agent: нет
[17:28:19] red-agent: /me показал пальцем на название комнаты
[17:28:24] nileriver: При попытке преобразования в кникод того что счиитан ос сервака - то же с амое
[17:28:27] red-agent: python'овиц
[17:28:32] nileriver: то биш проблема не в re
[17:28:48] nileriver: red-agent: да понятное дело. я на работе на яве пишу.. там не на яве просто делать нечего. не сут ьважно в общем.
[17:29:07] red-agent: ты преобразуешь сразу после чтения?
[17:29:10] nileriver: ага
[17:29:14] nileriver: только что попробовал
[17:29:17] red-agent: какая версия питона?
[17:29:20] nileriver: 2.5
[17:29:25] red-agent: 'cp1251' указать не забыл?
[17:29:27] nileriver: или точнее надо?
[17:29:29] nileriver: не забыл)
[17:29:38] red-agent: а он у тебя вобще есть?
[17:29:40] red-agent: в системе
[17:29:44] nileriver: хм.
[17:29:53] nileriver: вообще локаль? или что?
[17:29:54] Лис: оно есть в codecs
[17:30:06] Лис: и от системы не должно поидее зависить
[17:30:07] nileriver: в codecs то полюбому быть должна да.
[17:30:11] nileriver: мм..
[17:30:14] nileriver: блина.
[17:30:16] red-agent: codecs - local-dependant
[17:30:20] nileriver: проверить что ли под консолью.
[17:30:21] red-agent: е
[17:30:34] Лис: nileriver, проще будет если ты покажешь код
[17:30:43] nileriver: только что кидал
[17:30:54] nileriver: http://dumpz.org/1573/
[17:31:21] nileriver: это модуль в исходном варианте. щас я пробовал уже делать unicode сразу после получения данных
[17:31:37] nileriver: вызывается соответсвенно подряд login, search, search_results
[17:31:40] red-agent: ну, у тебя видимо нету cp1251 nls
[17:31:53] red-agent: [17:19:38] nileriver: но оно слетает с UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-10: ordinal not in range(128)
[17:32:01] red-agent: т.к. идет фоллбек на ascii
[17:32:13] nileriver: это я тоже заметил и долго над этим тупил честно говоря
[17:32:20] nileriver: почему он пытается конвертнуть не тем кодеком
[17:32:29] red-agent: я уже сказал
[17:32:30] red-agent: почему
[17:32:48] nileriver: тогда вопрос. 1. как проверить.
[17:33:00] Лис: locale -a написать в консоле
[17:33:25] nileriver: оппа.
[17:33:29] nileriver: а вот это уже близко к правде.
[17:33:32] nileriver: спасибо
[17:33:52] nileriver: локали нету.
[17:33:58] nileriver: /me полез разбиратся с аптитудой
[17:36:49] Лис: red-agent, >codecs - local-dependant
очень глупо со стороны codecs :)
[17:37:13] nileriver: хмы.
[17:37:40] red-agent: Лис: ужь как есть
[17:38:35] nileriver: хм
[17:38:48] nileriver: докаль то появилось.. но кодек не подхватывается..
[17:45:41] nileriver: тьфу фак..
[17:45:46] nileriver: порадоваться хотите?
[17:46:00] nileriver: и я идиот и руки у меня кривые.. но так жеж нельзя
[17:46:05] nileriver: http://python.su/forum/viewtopic.php?pid=9221
[17:54:03] slav0nic: если вывожу форму через form.as_p() как изменить порядок полей?
[17:54:25] _lorien: укажи их в форме в другом порядке )
[17:55:17] slav0nic: та фиг=\
[17:55:31] slav0nic: там профиль, на базе 2х моделей
[17:55:49] slav0nic: нашёл у добрыча в блоге
class ProfileFormFull(ProfileForm):
def __init__(self, *args, **kwargs):
super(ProfileFormFull, self).__init__(*args, **kwargs)
self.fields['last_name'] = User._meta.get_field('last_name').formfield()
self.fields['first_name'] = User._meta.get_field('first_name').formfield()
[17:56:17] slav0nic: а ProfileForm ModelForm на базе профиля
[17:56:34] slav0nic: проще по моему без форм%)
[18:02:13] wiz_: что-то ересь какая-то
[18:04:18] slav0nic: http://livedev.org/articles/tag/profile
[18:04:29] slav0nic: оттуда взял, работает
н омне тож не нравится
[18:08:30] slav0nic: wiz_, а другие варианты будут?
[18:08:54] slav0nic: если мне надо менять имя и фио в юзере, а например город в профиле
[18:11:02] slav0nic: короче сделаю 2 формы)
[18:14:47] slav0nic: а то после таких манипуляций я начал впадать в депрессию))
[18:29:29] wiz_: slav0nic, а form_for_model не катит?
[18:29:57] slav0nic: уже курю)
[18:31:23] slav0nic: только вот как в них сделать, чтоб на выходе в хтм было например
<p class="reg">
[18:31:27] slav0nic: а не просто з
[18:31:28] slav0nic: p
[18:33:49] slav0nic: я так понимаю в шаблоне рисовать?
[19:03:55] : This room is not anonymous
[19:03:55] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[19:34:07] : This room is not anonymous
[19:34:07] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[19:39:32] Лис: бугага
[19:39:38] Лис: Звездный путь "Enterprise"/Star Trek "Enterprise"
[19:39:41] Лис: :D
[19:39:55] Лис: торрент такой обноружил
[20:10:06] : This room is not anonymous
[20:10:06] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[20:13:22] red-agent: Лис: и что тут смешного?
[20:39:41] red-agent: бллядь
[20:39:42] red-agent: сука
[20:39:56] red-agent: почему я немогу в шаблоне добратся к queryset.model
[20:40:01] red-agent: из шелла - все ок
[20:40:10] red-agent: из шаблона - облом бля
[20:41:54] red-agent: slav0nic:
[20:41:59] red-agent: any ideas?
[20:42:44] Муркт: red-agent: тебе обязательно в шаблоне нужно? Во вьюхе вытащить нельзя?
[20:42:58] red-agent: именно в шаблоне
[20:43:08] Муркт: нет идей
[20:43:14] red-agent: я передаю туда срей
[20:43:18] red-agent: из all()
[20:43:25] red-agent: но мне так нада посчитать objects.count()
[20:43:44] red-agent: единственный вариант - срезать в шаблоне?
[20:43:59] red-agent: тогда получается лишний запрос
[20:44:15] red-agent: потому, что срез два раза
[20:44:19] red-agent: сначала для итерации
[20:44:24] red-agent: и потом уже для того, что нужно
[20:44:52] Муркт: что такое "срей"?
[20:44:59] red-agent: *срез
[20:45:02] red-agent: slice
[20:45:05] Муркт: гмм
[20:45:13] Муркт: ну а при чём здесь модель?
[20:45:23] red-agent: model.objects.count()
[20:45:28] Муркт: или тебе религия запрещает передавать одновременно и модель, и срез?
[20:45:36] red-agent: да некрасиво
[20:45:40] red-agent: но видимо выход
[20:45:42] red-agent: так что ок
[20:45:45] Муркт: завто действенно
[20:45:50] Муркт: *зато
[21:05:11] slav0nic: блин, профиль чтоли автоматом не генрится? если прописывать AUTH_PROFILE_MODULE
[21:05:27] slav0nic: а то get_profile() и ексепшн
[21:05:38] red-agent: а ты как прописал?
[21:06:51] slav0nic: AUTH_PROFILE_MODULE = 'profile.UserProfile'
в сеттингс
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True, edit_inline=models.STACKED, max_num_in_admin=1, num_in_admin=1 )
...
[21:08:31] slav0nic: где не прав?
[21:09:04] red-agent: вроде все ок
[21:09:06] red-agent: странно
[21:14:55] slav0nic: In [8]: UserProfile.objects.all()
Out[8]: []
странно, интересно куда делась инфа которую я ввёл через админку)
[21:17:18] Муркт: slav0nic: я знаю
[21:17:35] Муркт: slav0nic: ЕЁ ЗОХАВАЛ СОТОНА!
[21:19:11] red-agent: Муркт: 40-50 запросов для блога с тегам - нормально?
[21:19:22] Муркт: на страничку? плохо.
[21:19:35] slav0nic: red-agent, а чё так много?
[21:19:41] red-agent: на 13 постов
[21:19:50] Лис: ы
[21:19:54] slav0nic: у меня не более 20 на сайте с разделами расписания матча, теги и чёт ещё
[21:19:59] Муркт: На страничку должно быть не больше десятка запросов, желательно - плюс это количество не должно, по хорошему, зависеть от количества постов
[21:20:08] Муркт: Лис: ты перестал быть Большим?
[21:20:10] red-agent: )(
[21:20:15] red-agent:
{% if item.tags.count %}
Tags: {% for tag in item.tags.all.select_related %} <a href="{% url blog.views.get_by_tag tag.name %}">{{ tag.name }}</a>{% endfor %}<br>
{% endif %}
[21:20:25] red-agent: вот оно отжирает много
[21:20:27] slav0nic: red-agent, юзай django-tagging
[21:20:28] Муркт: red-agent: кури байтфлоу, там это обойдено :)
[21:20:28] red-agent: в каждом посте
[21:20:30] slav0nic: там 1 запрос
[21:20:53] Лис: red-agent, да заюзай ты наконец load_related
[21:22:01] red-agent: стандартным средствами что-ли не вариант?
[21:22:05] Муркт: не-а
[21:22:29] red-agent: блядство
[21:22:39] Муркт: да
[21:22:42] red-agent: Муркт: а если эти запросы адски резвые?
[21:22:44] red-agent: тоесть
[21:22:59] Муркт: red-agent: "блядство - да"
[21:23:02] red-agent: 0.00 суммарно
[21:23:16] red-agent: это вменяемо вобще?
[21:23:18] Муркт: red-agent: это были ответы на разные реплики.
[21:23:47] slav0nic: ващето у joomla 50-100 запросов как я уже говорил и никто не парится) но всё же имхо эт дохуя
[21:23:58] Муркт: если запросы адски резвые, при больших нагрузках всё равно база уложится при большой нагрузке
[21:24:18] Муркт: если что, ты потом сможешь апгрейднуть - а сейчас можешь не заморачиваться
[21:24:21] red-agent: больших нагрузок там не предвидится
[21:24:28] Муркт: я бы сейчас так и сделал - оставил как есть
[21:24:50] red-agent: вот эта херь
{% if item.tags.count %}
Tags: {% for tag in item.tags.all %} <a href="{% url blog.views.get_by_tag tag.name %}">{{ tag.name }}</a>{% endfor %}<br>
{% endif %}
[21:24:53] red-agent: если её убрать
[21:24:57] red-agent: 41 превращаются в 8
[21:25:29] Лис: red-agent, возьми за привычку пользоватся named url-ами
[21:25:38] Лис: намного проще жизнь становится
[21:25:45] red-agent: какими?
[21:26:04] Муркт: slav0nic: о!
[21:26:08] Лис: http://www.djangoproject.com/documentation/url_dispatch/#naming-url-patterns
[21:26:20] Муркт: slav0nic: а ты приедешь на exception gathering? Диплом ведь уже защитил =)
[21:26:21] red-agent: эээ
[21:26:27] red-agent: у меня они такие и есть
[21:26:32] slav0nic: Муркт, эт когда?) хз
[21:26:37] Лис: {% url blog.views.get_by_tag tag.name %}
[21:26:38] Муркт: slav0nic: через выходные
[21:26:42] Лис: это не named
[21:26:43] slav0nic: мож быть)
[21:26:49] Муркт: 19-го июля, и, возможно, 20-го
[21:26:49] red-agent: это вобще не урл =)
[21:26:52] red-agent: он только достает урл
[21:26:56] red-agent: из урлконфа
[21:26:58] Лис: оно генерирует URL
[21:27:00] red-agent: и передает туда параметром
[21:27:05] red-agent: *параметр
[21:27:10] red-agent: позиционный
[21:27:29] red-agent: Лис: это выдирается из urlconf, ничего не генерируется
[21:30:02] Лис: когда ты используешь одну и туже вьюху в нескольких УРЛ-ах и используешь такой вот способ как сейчас, могут начатся всякие интересные NoReversMatch :)
[21:30:13] Лис: а вот с named такого нет
[21:30:20] Лис: просто потому что даёш им разные имен
[21:30:22] Лис: а
[21:30:33] red-agent: в топку
[21:32:07] Лис: нюню
[21:32:27] Лис: никогда не юзай load_related и named url-ы
[21:32:28] Лис: ;)
[21:34:03] Муркт: чуваки, я тут связался немного с эмбеддедом
[21:34:33] Муркт: И чо я могу вам сказать - примитивизм полный. Думать не надо вообще, знать тоже ничего не надо =)
[21:34:46] Муркт: Сел - и пишешь код.
[21:34:56] slav0nic: )
[21:35:32] Муркт: Это с тем, что я первый раз в жизни видел эмбеддед, "второй" раз видел Си (я на нём только лабы на первом курсе делал), про сам эмбеддед мне никто ничего не рассказывал.
[21:36:07] Муркт: Дали только парочку программ, в которые можно глянуть, как люди делают.
[21:36:43] Муркт: Скажу честно, люди делают хуёво =) У меня код выходит втрое короче и в десять раз читабельнее
[21:37:56] Лис: покажи пример
[21:37:59] slav0nic: на чём оно?
[21:38:07] Муркт: slav0nic: я же говорю - Си.
[21:38:10] slav0nic: хы
[21:38:25] Svoloch: Муркт: дай ссыли
[21:38:30] slav0nic: я когда-то его знал%)
[21:38:36] Муркт: Svoloch: ссылки на что? :)
[21:38:43] Svoloch: ну на код
[21:38:49] Муркт: а
[21:39:06] Муркт: Лис, Svoloch: ща, выложу пару образцов на дампз.орг
[21:39:44] wiz: http://i31.tinypic.com/xm37za.jpg
[21:41:47] Муркт: http://dumpz.org/1575/ http://dumpz.org/1576/
[21:43:02] Муркт: wiz: что-то я не выкупил :)
[21:43:31] wiz: http://b23.ru/h4p -- i18n fail
[21:43:43] wiz: Муркт, какбы молоток висит на линейке
[21:43:51] Муркт: Svoloch: ну как?
[21:44:51] Муркт: в моём коде комментарии на русском, ибо я сомневаюсь, что те, кто будет за мной читать, нормально поймут английский =)
[21:45:05] Svoloch: вижу кучу использований глобальных переменных
[21:46:13] red-agent: бля
[21:46:19] Svoloch: стиль работы с устройствами какойто не привычный
[21:46:23] Муркт: Svoloch: там без глобальных не выйдет
[21:46:29] red-agent: давай ваш load_related
[21:46:35] red-agent: ато меня тупо совесть замучает
[21:46:48] red-agent: http://byteflow.su/browser/byteflow/lib/db.py
[21:46:50] red-agent: 500
[21:47:02] Лис: hg.piranha.org.ua
[21:47:19] Муркт: red-agent: в byteflow - apps/lib/db.py
[21:48:28] Муркт: Svoloch: на устройство приходят сигналы от ног контроллера, на которые тупо отображается состояние некоторых бит в памяти.
[21:48:47] Муркт: 256 байт озу в моём контроллере :)
[21:49:31] Svoloch: а по байтам и словам обрабатывать?
[21:49:52] Муркт: А записывать всё равно всё надо по очереди в один битик.
[21:49:58] Муркт: руками
[21:50:16] red-agent: не
[21:50:19] red-agent: все же забью
[21:51:20] Муркт: red-agent: http://hg.piranha.org.ua/byteflow/file/b9f7d72cbec2/apps/lib/db.py#l75
[21:51:29] red-agent: да я нашел уже
[21:51:33] red-agent: проглянул
[21:51:52] red-agent: но посколько я до конца не вкуриваю этот код - юзать не буду
[22:17:32] freemindman: посоветуйте IDE для разработки на Python под linux
[22:17:43] Муркт: emacs
[22:21:05] freemindman: присматриваюсь к pida (http://pida.co.uk/) кто-нибудь использует ее?
[22:29:51] slav0nic: уже нет, на vim канале спроси
[22:30:00] slav0nic: мля, админка джанги заипала падать=\
[22:33:53] slav0nic: TypeError at /admin/auth/user/2/delete/
coercing to Unicode: need string or buffer, User found
мде
[22:34:52] freemindman: slav0nic, понятно, придется все-таки освоить emacs :)
[22:35:09] slav0nic: freemindman, удачного плавания))
[22:35:21] slav0nic: ты нашёл себе занятие до пенсии
[22:36:04] freemindman: slav0nic, :-D
[22:36:23] Муркт: slav0nic: ты что-то неправильно делаешь. У тебя в __unicode__ всё нормально возвращается?
[22:37:12] slav0nic: там был FK B)
[22:39:30] slav0nic: дебилизм конечно, что профили не создаются при добавлении юзера, пришлось обработчик сигнала повесить
[22:42:11] Лис: freemindman, юзай vim
[22:42:18] Лис: pida это надстройка над vim
[22:42:36] Лис: хотя конечно пока совоишся, времени убьёш много, зато потом....
[22:42:51] Муркт: ...всё равно будешь работать медленнее, чем в емаксе.
[22:42:59] Муркт: freemindman: ты же не молдаван? Не юзай вим.
[22:43:21] Муркт: Лис :)
[22:44:54] freemindman: с вимом у меня как-то не сложилось, emacs все-таки по-понятнее
[22:45:18] slav0nic: %) нуну, я помню еле вышел с него))
[22:45:33] Лис: юзай емакс если он показался органичнее :)
[22:45:35] slav0nic: до сих просываю в поту, вспоминая этот случай)
[22:45:48] Лис: :D
[22:45:52] Муркт: slav0nic: проссываешь в поту? Ой, нехорошо это.
[22:45:57] slav0nic: ))
[22:45:59] Svoloch: kate и scite всёравно лутше
[22:46:19] slav0nic: я в gvim пишу) юзаю кнопки вставить, вырезать)
[22:46:20] Муркт: сцыт - лутше, а емакс - лучше
[22:46:22] slav0nic: ужс короче)
[23:16:27] : This room is not anonymous
[23:16:27] : piranha has set the subject to: Python.SU | Код постить в dumpz.org | Логи: http://xa4a.org.ua/logs/pythonua@conference.jabber.ru/ | Хочешь задать вопрос - просто *задай* его! | Разрешено не более 2 тупых вопросов в день от человека
[23:40:20] mishok13: я пропустил мини-редакторо-флейм
[23:40:30] mishok13: :(