Стандартный подход заключается в использовании операторов try:
и except
, ссылка . В вашем примере,
try:
SomeObject.objects.all()[0].id
exept OperationalError:
pass # or whatever you want in this case
Если вы часто используете модель, рассмотрите возможность переопределения ее функции get_queryset. Например,
class YourClass:
def get_queryset(self, request):
try:
super(your-model-super, self).get_queryset(request)
exept OperationalError, error:
if error.code == 1054:
pass
else:
raise
Я не могу придумать другого способа справиться с этим.