Форум сайта python.su
Такой код
context_name = _(u"муму")
kwargs={}
...
kwargs['onetoone__fk2__name__icontains']=context_name
...
print '..'
q = Table.objects.select_related('onetoone__fk2__name').filter(**kwargs)
print '....'
Отредактировано (Фев. 14, 2010 22:32:14)
Офлайн
Nick2009Что значит “сваливается”?
то запрос сваливается на строке q = Table.objects.select_related('onetoone__fk2__name').filter(**kwargs)
, без сообщений об ошибках.
Nick2009Вы понимаете что этот вызов не имеет смысла?
select_related('onetoone__fk2__name')
Офлайн
DaevaornСваливается, значит выполнение вьюхи прекращается в этой строкеNick2009Что значит “сваливается”?
то запрос сваливается на строке q = Table.objects.select_related('onetoone__fk2__name').filter(**kwargs)
, без сообщений об ошибках.Nick2009Вы понимаете что этот вызов не имеет смысла?
select_related('onetoone__fk2__name')
SELECT * FROM item_process AS p
LEFT JOIN item AS i ON i.id = p.id
LEFT JOIN obj AS o ON o.id = i.obj_id
LEFT JOIN obj_taranslation AS o_trans ON o_trans.master = o.id
WHERE o_trans.name_ru LIKE '%некоторый контекст%'
Отредактировано (Фев. 14, 2010 23:53:35)
Офлайн
Nick2009Тогда покажите трейсбек ошибки.
Сваливается, значит выполнение вьюхи прекращается в этой строке
Nick2009select_related предназначен для “присоединения” связных объектов целиком. Из-за этого имеет смысл указыва только related поля – т.е. ForeignKey/OneToOneField. Поля другого типа указывать бессмысленно.
Почему не имеет?
Офлайн
DaevaornСогласен, исправил, но это никак на результат не влияет.Nick2009Тогда покажите трейсбек ошибки.
Сваливается, значит выполнение вьюхи прекращается в этой строкеNick2009select_related предназначен для “присоединения” связных объектов целиком. Из-за этого имеет смысл указыва только related поля – т.е. ForeignKey/OneToOneField. Поля другого типа указывать бессмысленно.
Почему не имеет?
Ну и конечно, если вам не нужны связные объекты в результате, то вообще select_related надо опустить. В вашем случае это скорей всего так.
Отредактировано (Фев. 14, 2010 23:38:45)
Офлайн
Nick2009Ну так трейсбек вы приведете? Тут телепатов нет.
Ошибка в другом.
Офлайн
А как его получить? в консоли ошибок нет, в браузере нет.
Офлайн
Nick2009А что есть в браузере и в консоле? Если происходит ошибка, то должен быть трейсбек.
в консоли ошибок нет, в браузере нет.
Офлайн
В браузере сайт работает. При попытке получить выборку Ajax запросом, сайт ничего не делает, т.к. не получает реквеста.
В консоли идет трэйсбек обращений к серверу и мои принты.
Доходит нормально до этой строки и сваливается из данной вьюхи без комментариев.
Дальше идут опять POST/GET трэйсбеки, т.к. я мышкой двигаю а сайт на это реагирует.
Вообще, есть такая беда, при работе с Ajax запросами в браузер не выдаются ошибки, хотя они очевидно возникают.
Сейчас попробовал Django_debug_toolbar поставить. С первого раза не завелся, нужно его допиливать т.к. он кажется jQuery не видит, а времени сейчас нет.
Может можно получить скрытый стрейсбек из командной строки?
Отредактировано (Фев. 15, 2010 00:37:31)
Офлайн
Воспользуйтесь pdb или logging.exception.
Офлайн