Форум сайта python.su
FerromanСразу после вызова запроса pdb выдает
Воспользуйтесь pdb или logging.exception.
...filter(subject__object__textfield__contains='abcd')
...filter(subject__object__name__contains='abcd')
c:\webserver\usr\local\python\2.5.1\lib\site-packages\django_multilingual-0.1.0-
py2.5.egg\multilingual\admin.py:179: DeprecationWarning: <class 'myapp.models.
Obj'> should be registered with a subclass of of multilingual.ModelAdmin.
" of multilingual.ModelAdmin." % model, DeprecationWarning)
Отредактировано (Фев. 15, 2010 02:40:35)
Офлайн
Посмотрите что передается, а главное возвращается через ajax. Самый простой метод - взять firefox+firebug и посмотреть что летает к сайту, от сайта на вкладке “Сеть” в файрбаге. Есть мнение, что там возвращается 500 ошибка. Чего там возвращает сервер можно глянуть щелкнув правой кнопкой на нужном url и выбрать “Открыть в новом окне”.
Офлайн
ziroВы не поняли. Этот метод не поможет и ajax тут не при чем, и ошибки типа 404 и 500 там близко не должно быть. Ошибка возникает внутри генератора запроса. Конкретно, проблема в том, что Djangо не понимает какой запрос требуется создать или не может его построить. Таблица перевода вообще не подключается в запросе, в результате чего фильтр по полю name__contains и вообще любые фильтры по name вызывают ошибку на этапе генерации или начала исполнения.
Посмотрите что передается, а главное возвращается через ajax. Самый простой метод - взять firefox+firebug и посмотреть что летает к сайту, от сайта на вкладке “Сеть” в файрбаге. Есть мнение, что там возвращается 500 ошибка. Чего там возвращает сервер можно глянуть щелкнув правой кнопкой на нужном url и выбрать “Открыть в новом окне”.
Отредактировано (Фев. 15, 2010 13:19:09)
Офлайн
Nick2009Djangо не умеет читать ваши мысли, она либо сделает что ей велено сделать, либо выдаст сообщение об ошибке, чтобы вы имели возможность понять в чём вы не правы. Ещё Django - это не чёрный ящик, состояние которого описывается лишь по ответу HTTP сервера. Тыкать пальцем в небо нет смысла, т.к. у вас есть исходники и средства (методы) отладки.
Djangо не понимает
Nick2009Такие ошибки (исключения) никем не проглатываются, и никто не мешает вам обернуть подозрительную конструкцию в try … except и вывести print-ом сообщение об ошибке - это самый простой метод отладки.
Ошибка возникает внутри генератора запроса
Офлайн
poltergeistНе знаешь ответ, зачем пишешь?.Nick2009Djangо не умеет читать ваши мысли, она либо сделает что ей велено сделать, либо выдаст сообщение об ошибке, чтобы вы имели возможность понять в чём вы не правы. Ещё Django - это не чёрный ящик, состояние которого описывается лишь по ответу HTTP сервера. Тыкать пальцем в небо нет смысла, т.к. у вас есть исходники и средства (методы) отладки.
Djangо не понимаетNick2009Такие ошибки (исключения) никем не проглатываются, и никто не мешает вам обернуть подозрительную конструкцию в try … except и вывести print-ом сообщение об ошибке - это самый простой метод отладки.
Ошибка возникает внутри генератора запроса
Отредактировано (Фев. 15, 2010 16:19:26)
Офлайн
Nick2009
ВЫ сами не видите что чворится в вашем “чёрном ящике”, но верите в то, что увидят другие?
Вот это:
Сразу после вызова запроса pdb выдаетТотально неинформативно.
TypeError: TypeErro…erable",)
потом
–Return–
потом декораторы вызываются
и затем
except http.Http404, e:
Офлайн
FerromanКонечно не информативно! Я еще от себя информации добавил.
Nick2009
ВЫ сами не видите что чворится в вашем “чёрном ящике”, но верите в то, что увидят другие?
Вот это:Сразу после вызова запроса pdb выдаетТотально неинформативно.
TypeError: TypeErro…erable",)
потом
–Return–
потом декораторы вызываются
и затем
except http.Http404, e:
Отредактировано (Фев. 15, 2010 18:29:01)
Офлайн
Nick2009Тогда с тебя тестовый пример, который демонстрирует проблему. Такой, чтобы ./manage.py runserver и мы смогли бы увидеть ошибку и тебе помочь.
Да сами проверьте на аналогичном примере.
Офлайн
Nick2009, вы наверное очень много работали с SQL. Из всего треда этого складывается впечатление, что вы хотите заставить ОРМ сгенерировать нужный вам запрос не по смыслу, а посимвольно.
ОРМ - это инструмент предназначенный для облегчения работы с БД и для переносимости, а не для того чтобы его мучить. Естественно он не покрывает всего, что можно сделать с помощью SQL, и дело даже не в джанговском ОРМе, даже Алхимия всего не умеет.
Постарайтесь перестроить что-то в вашей архитектуре, и слушать советы, которые вам дают, а не огрызаться, тогда, может, чего и получится.
Nick2009В контексте вышесказанного, я бы скорее сказал, что этот вызов не имеет здравого смысла.
.select_related('onetoone__fk2__name')Daevaorn
Вы понимаете что этот вызов не имеет смысла?
Отредактировано (Фев. 16, 2010 11:10:43)
Офлайн
regallВы наверное читать не умеете? Я уже написал, что давно поправил это, хотя это никак не влияет на работу.
Nick2009, вы наверное очень много работали с SQL. Из всего треда этого складывается впечатление, что вы хотите заставить ОРМ сгенерировать нужный вам запрос не по смыслу, а посимвольно.
ОРМ - это инструмент предназначенный для облегчения работы с БД и для переносимости, а не для того чтобы его мучить. Естественно он не покрывает всего, что можно сделать с помощью SQL, и дело даже не в джанговском ОРМе, даже Алхимия всего не умеет.
Постарайтесь перестроить что-то в вашей архитектуре, и слушать советы, которые вам дают, а не огрызаться, тогда, может, чего и получится.Nick2009В контексте вышесказанного, я бы скорее сказал, что этот вызов не имеет здравого смысла.
.select_related('onetoone__fk2__name')Daevaorn
Вы понимаете что этот вызов не имеет смысла?
q = Table1.objects.select_related('field1__field2').filter(field1__field2__name='уй')
q = Table1.objects.filter(field1__field2__name='уй')
q = Table2.objects.filter(field2__name='уй')
q = Table3.objects.filter(name='уй')
Отредактировано (Фев. 16, 2010 13:10:00)
Офлайн