2011-11-11 81 views
2

我在這裏和Django都是新手,我對自定義字段有疑問: 我在我的管理員中使用自定義模型,但我想更改標籤顯示在表格內聯。內聯自定義管理字段的Django標籤

我的模式是這樣的:

ModelA(Model): 
    name = Model.charField(80) 
    (...) 

ModelB(Model): 
    modelA = ModelA 
    (...) 

然後在我的管理使用:

def name_modelA(self): 
    return ("%s" % self.modelA.name) 

class ModelBInlne(TabularInline): 
    (...) 
    fields=('field1','field2',...,name_modelA) 
    (...) 

的是,在管理頁面上的名稱標籤出來「name_modelA」,我我想將它改爲「名稱」。可能嗎?

希望我清楚了。

回答

1

我想你會得到你想要的verbose field names?這將控制管理界面中可編輯字段的標籤。

對於表格界面,我會說大致如下的東西應該做的:

class ModelAInline(TabularInline): 
    model = ModelA 

class ModelAAdmin(ModelAdmin): 
    inlines = [ ModelAInline, ] 

這使你的ModelA編輯在線。我不確定你想如何讓它顯示在你的ModelB,但也許你可以通過the ModelAdmin docs看看,並使用從那裏的東西?

+0

我不認爲我足夠清楚:我在第三個模型(ModelC)中有ModelBInline。我需要name_modelA字段的標籤(在modelB內聯中)僅顯示「名稱」。就像verbose_name一樣,但對於自定義字段 –

+0

,我並沒有在任何地方看到您的字段的定義,但是如果您自己創建了它,則可以在構造函數中設置詳細名稱。例如,參見[這裏](https://docs.djangoproject.com/en/dev/howto/custom-model-fields/#writing-a-field-subclass)。在'__init__'中,您可以根據自己的喜好設置名稱屬性。 – jro