我正在从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)
答案 0 :(得分:1)
当您在admin_site中注册AdminClass时,Django将管理类实例化为保存在注册表(dict)中,其中键是ModelClass,值是ModelAdminClass实例,
从内联实例中,您可以访问parent_model,然后在注册中搜索
def get_object(self, request, model):
...
admin_site._registry[self.parent_model]