Форум сайта python.su
0
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)
Офлайн
8
Посмотрите что передается, а главное возвращается через ajax. Самый простой метод - взять firefox+firebug и посмотреть что летает к сайту, от сайта на вкладке “Сеть” в файрбаге. Есть мнение, что там возвращается 500 ошибка. Чего там возвращает сервер можно глянуть щелкнув правой кнопкой на нужном url и выбрать “Открыть в новом окне”.
Офлайн
0
ziroВы не поняли. Этот метод не поможет и ajax тут не при чем, и ошибки типа 404 и 500 там близко не должно быть. Ошибка возникает внутри генератора запроса. Конкретно, проблема в том, что Djangо не понимает какой запрос требуется создать или не может его построить. Таблица перевода вообще не подключается в запросе, в результате чего фильтр по полю name__contains и вообще любые фильтры по name вызывают ошибку на этапе генерации или начала исполнения.
Посмотрите что передается, а главное возвращается через ajax. Самый простой метод - взять firefox+firebug и посмотреть что летает к сайту, от сайта на вкладке “Сеть” в файрбаге. Есть мнение, что там возвращается 500 ошибка. Чего там возвращает сервер можно глянуть щелкнув правой кнопкой на нужном url и выбрать “Открыть в новом окне”.
Отредактировано (Фев. 15, 2010 13:19:09)
Офлайн
0
Nick2009Djangо не умеет читать ваши мысли, она либо сделает что ей велено сделать, либо выдаст сообщение об ошибке, чтобы вы имели возможность понять в чём вы не правы. Ещё Django - это не чёрный ящик, состояние которого описывается лишь по ответу HTTP сервера. Тыкать пальцем в небо нет смысла, т.к. у вас есть исходники и средства (методы) отладки.
Djangо не понимает
Nick2009Такие ошибки (исключения) никем не проглатываются, и никто не мешает вам обернуть подозрительную конструкцию в try … except и вывести print-ом сообщение об ошибке - это самый простой метод отладки.
Ошибка возникает внутри генератора запроса
Офлайн
0
poltergeistНе знаешь ответ, зачем пишешь?.Nick2009Djangо не умеет читать ваши мысли, она либо сделает что ей велено сделать, либо выдаст сообщение об ошибке, чтобы вы имели возможность понять в чём вы не правы. Ещё Django - это не чёрный ящик, состояние которого описывается лишь по ответу HTTP сервера. Тыкать пальцем в небо нет смысла, т.к. у вас есть исходники и средства (методы) отладки.
Djangо не понимаетNick2009Такие ошибки (исключения) никем не проглатываются, и никто не мешает вам обернуть подозрительную конструкцию в try … except и вывести print-ом сообщение об ошибке - это самый простой метод отладки.
Ошибка возникает внутри генератора запроса
Отредактировано (Фев. 15, 2010 16:19:26)
Офлайн
1
Nick2009
ВЫ сами не видите что чворится в вашем “чёрном ящике”, но верите в то, что увидят другие?
Вот это:
Сразу после вызова запроса pdb выдаетТотально неинформативно.
TypeError: TypeErro…erable",)
потом
–Return–
потом декораторы вызываются
и затем
except http.Http404, e:
Офлайн
0
FerromanКонечно не информативно! Я еще от себя информации добавил.
Nick2009
ВЫ сами не видите что чворится в вашем “чёрном ящике”, но верите в то, что увидят другие?
Вот это:Сразу после вызова запроса pdb выдаетТотально неинформативно.
TypeError: TypeErro…erable",)
потом
–Return–
потом декораторы вызываются
и затем
except http.Http404, e:
Отредактировано (Фев. 15, 2010 18:29:01)
Офлайн
0
Nick2009Тогда с тебя тестовый пример, который демонстрирует проблему. Такой, чтобы ./manage.py runserver и мы смогли бы увидеть ошибку и тебе помочь.
Да сами проверьте на аналогичном примере.
Офлайн
3
Nick2009, вы наверное очень много работали с SQL. Из всего треда этого складывается впечатление, что вы хотите заставить ОРМ сгенерировать нужный вам запрос не по смыслу, а посимвольно.
ОРМ - это инструмент предназначенный для облегчения работы с БД и для переносимости, а не для того чтобы его мучить. Естественно он не покрывает всего, что можно сделать с помощью SQL, и дело даже не в джанговском ОРМе, даже Алхимия всего не умеет.
Постарайтесь перестроить что-то в вашей архитектуре, и слушать советы, которые вам дают, а не огрызаться, тогда, может, чего и получится.
Nick2009В контексте вышесказанного, я бы скорее сказал, что этот вызов не имеет здравого смысла.
.select_related('onetoone__fk2__name')Daevaorn
Вы понимаете что этот вызов не имеет смысла?
Отредактировано (Фев. 16, 2010 11:10:43)
Офлайн
0
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)
Офлайн