Django 1.5 Admin - запрос на сопоставление объектов не существует - прерывистый

Версия Python 2.7.3 Django - 1.5

Я использую стандартный Django Admin DefaultModelAdmin для добавления и изменения объектов.

проблема

Когда я добавляю объект с помощью Django Admin Add View - примерно один из каждых десяти раз - я получаю эту ошибку:

Object matching query does not exist> Lookup parameters were {'objectid_exact':234}

Вместо этого Django должен просто вернуться к представлению с разбивкой по страницам, где можно увидеть все объекты, но, похоже, он не может найти вновь созданный объект.

Примечание. У меня включена функция DEBUG, в противном случае я вижу стандартную ошибку 500 страниц. Строка кода, на которую он жалуется, находится в моем классе models.py: From models.py:

return "MyObject: %s: %s (by: %s)" % (self.pk, self.title, self.namelc)

Дело в том, что если я обновлю Django Admin, объект будет добавлен, и с ним проблем не будет.

Я провел некоторое исследование вокруг этого и нашел несколько статей и опробовал рекомендации - но они не имели никакого значения - например:

  1. Запрос на совпадение с Django не существует после сохранения объекта в задаче Celery

Наконец - я добавил эту строку кода в конец метода svae_model(), и это решило проблему:

my_list = list(models.MyObject.objects.all())

Я не уверен, почему это решает проблему - это заставляет Django пересмотреть QuerySet в соответствии с этими статьями:

  1. Джанго ленивый QuerySet и нумерация страниц
  2. https://docs.djangoproject.com/en/1.5/ref/models/querysets/

Это не влияет на производительность, и пока я не видел проблему снова.

Я не совсем понимаю, почему это решает проблему, поэтому я был бы благодарен за любые идеи относительно:

  1. Почему этот обходной путь, кажется, решает проблему?
  2. Любые идеи относительно причины проблемы в первую очередь?

Я использую @action.commit_on_success в методе, который добавляет элемент в БД, но, как я уже сказал, я думаю, что проблема заключается в том, что Django пытается отобразить разбитый на страницы список List - он не может найти вновь созданный объект.

Заранее спасибо за любую помощь - высоко ценится!

0 ответов

Другие вопросы по тегам