2011-11-11 1 views
2

저는 여기에서 장고에 대해 새롭고 사용자 정의 필드에 대해 의문을 가지고 있습니다. 내 관리자에서 사용자 정의 모델을 사용하고 있지만 그 레이블을 변경하고 싶습니다. 표 형식의 인라인에 표시됩니다.인라인의 사용자 정의 관리 필드 용 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"만 표시하려면 name_modelA 필드의 레이블 (modelB 인라인에 있음)이 필요합니다. verbose_name과 같지만 사용자 정의 필드에 대한 것입니다. –

+0

어디서나 정의를 볼 수는 없지만 직접 작성한 경우에는 생성자에서 자세한 이름을 설정할 수 있습니다. 예를 들어 [here] (https://docs.djangoproject.com/en/dev/howto/custom-model-fields/#writing-a-field-subclass)를 참조하십시오. '__init__'에서 이름 속성을 원하는대로 설정할 수 있습니다. – jro

관련 문제