Django: доступ к образцовому экземпляру из ModelAdmin?

Прямой ответ: нет, is нельзя переопределить (потому что это ключевое слово).

Но вы можете сделать что-то более элегантное, используя дженерики. Сначала определите ваш метод Is() следующим образом:

public bool Is<T>() where T: Exception
{
    return typeof(T).FullName == this.TypeName;
}

Затем вы можете написать свое сравнение следующим образом:

if (ex.Is<Validator.ValidatorException>())
44
задан JK Laiho 4 June 2009 в 08:32
поделиться

1 ответ

Я думаю, вам может понадобиться подойти к этому несколько иначе - изменив 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
58
ответ дан 26 November 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: