Django ORM, дающий несогласованный ответ между ‘get’ и ‘filter’

#django #django-models #django-orm

#django #django-модели #django-orm

Вопрос:

Я использовал Django-softdelete для восстановления записи из таблицы ‘QRMapping’ (используя панель администратора Django). Теперь, когда я выполняю QRMapping.objects.get(qrid=myqr) where qrid является полем внешнего ключа QRMapping и myqr является переменной, имеющей запись в другой таблице MyQR , результат правильный, т.е.

 << QRMapping: QRMapping object>>
  

Но когда я выполняю QRMapping.objects.filter(qrid=myqr) , он возвращает пустой список

 []
  

Если get возвращает запись, то почему «filter» не может ее найти.

Комментарии:

1. Похоже, что это может быть связано с этой проблемой .

2. Я не уверен в этом. Вышеупомянутая проблема относится к тем случаям, когда get возвращаются элементы, удаленные программно. В моем случае запись восстанавливается после удаления (соответствующая запись в Change sets таблице soft-delete удаляется, как указано в документах). Следовательно, здесь не удаленная запись не отображается по filter сравнению с удаленной записью, неправомерно показанной get в вашей ссылке.