Набор запросов Django возвращает разные результаты от оболочки и сервера - PullRequest
0 голосов
/ 22 декабря 2011

У меня есть набор запросов Django, который получает разные результаты в разных ситуациях, и я в замешательстве.

texts = Text.objects.filter(keywords__icontains=word)

Модель:

class Text(models.Model):

    views = models.IntegerField(default=0)
    keywords = models.CharField(max_length=250)
    response = models.CharField(max_length=140)

Этот вызов, буквально скопированный, дает ожидаемые результаты с помощью оболочки ./manage.py, но ничего не находит на сервере.

Он вызывает результат, когда я вызываю Text.objects.all (), но по какой-то причине фильтр на сервере не находит такой же результат, как в любом другом случае.

ПОЧЕМУ ???

1 Ответ

0 голосов
/ 22 декабря 2011

Может быть, это из-за того, что ваш производственный движок баз данных отличается от вашего разработчика (я полагаю, вы используете manage.py shell на локальном компьютере)?

Имейте в виду, что поведение - особенно при сопоставлении строк - может отличаться в зависимости от вашей базы данных .

Или, возможно, содержимое ваших баз данных отличается?*

Если manage.py shell попадает в одну и ту же базу данных, результаты должны совпадать.Вы уверены, что ваш запрос (с веб-сервера) правильный?Проверьте журналы базы данных.

...