2011-11-11 6 views
2

私はこことDjangoの両方で新しく、カスタムフィールドについては疑問があります: 私の管理者でカスタムモデルを使用していますが、そのラベルを変更したいと思います表形式のインラインで表示されます。カスタム管理フィールド用のDjangoラベルはインラインで

私のモデルは、このようなものです:

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

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

はその後、私のadminに私が使用:

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

私は十分にはっきりしていなかったと思います.3番目のモデル(ModelC)にModelBInlineがあります。 "name"だけを表示するには、name_modelAフィールドのラベル(modelBインライン)が必要です。 verbose_nameと似ていますが、カスタムフィールドの場合 –

+0

フィールドの定義はどこにも表示されませんが、自分で作成した場合は、コンストラクターで詳細な名前を設定できます。たとえば、[here](https://docs.djangoproject.com/en/dev/howto/custom-model-fields/#writing-a-field-subclass)を参照してください。 '__init__'では、あなたの好みにnameプロパティを設定できます。 – jro

関連する問題