2011-06-16 63 views
1

我需要根据db_field的值更改admin中使用的小部件。这里是我试图介入的地方:在这种情况下,如何访问模型字段的值?

def formfield_for_dbfield(self,db_field,**kwargs): 
    field = super(MyAdmin, self).formfield_for_dbfield(db_field, **kwargs) 
    if db_field.name == "my_custom_name": 
     # how can I check here the value of the object? 

我一直在试图在过去的10分钟的shell中的各种组合,没有结果。

+0

如果你没有模型实例,你不会走得太远。 – 2011-06-16 10:20:46

+0

为了得到模型实例,我应该怎么做?我开始解析请求路径的绝望路径。我只需要这个用于管理员中的show实例。 – Geo 2011-06-16 10:25:38

回答

1

好了,所以这里的如何我终于做到了:

class MyAdmin(admin.ModelAdmin): 
    def get_form(self, request, obj=None, **kwargs): 
    self.object_instance = obj 
    return super(MyAdmin,self).get_form(request,obj,**kwargs) 

在那之后,一切都方便。

+0

你确定这是线程安全的吗? – 2017-02-28 05:01:13