如何从django admin中的内联类实例访问modeladmin类实例

时间:2015-10-22 18:04:27

标签: django django-models django-admin

我正在从admin.py中的url收集一个modeladmin类的当前实例,如下所示。但是现在如果我尝试创建一个新表单,它会抛出错误,因为url不包含任何id。我如何以django方式解决它?如何在内联类实例中获取modeladmin类的当前实例?

下面是我在内联类中抛出错误的代码。

def get_object(self, request, model):
    object_id = resolve(request.path).args[0]   #throws index error when 'add new form is clicked'
    try:
        object_id = int(object_id)
    except ValueError:
        return None
    return model.objects.get(pk=object_id)

1 个答案:

答案 0 :(得分:1)

当您在admin_site中注册AdminClass时,Django将管理类实例化为保存在注册表(dict)中,其中键是ModelClass,值是ModelAdminClass实例,

从内联实例中,您可以访问parent_model,然后在注册中搜索

def get_object(self, request, model):
    ...
    admin_site._registry[self.parent_model]