Прямой ответ: нет, is
нельзя переопределить (потому что это ключевое слово).
Но вы можете сделать что-то более элегантное, используя дженерики. Сначала определите ваш метод Is()
следующим образом:
public bool Is<T>() where T: Exception
{
return typeof(T).FullName == this.TypeName;
}
Затем вы можете написать свое сравнение следующим образом:
if (ex.Is<Validator.ValidatorException>())
Я думаю, вам может понадобиться подойти к этому несколько иначе - изменив ModelForm, а не класс администратора. Примерно так:
class OrderForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(OrderForm, self).__init__(*args, **kwargs)
self.fields['parent_order'].queryset = Order.objects.filter(
child_orders__ordernumber__exact=self.instance.pk)
class OrderAdmin(admin.ModelAdmin):
form = OrderForm