2011-06-16 65 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