장고 수정 관리자 복수


148

새로운 개발자 django 버전의 관리 사이트에서 일부 모델 이름을 "카테고리"에서 "카테고리"로 변경하려면 어떻게합니까? 이전 버전 (관리자 사이트 및 관리 모델)에서는이 작업을 수행 할 수 있습니다. http://www.the-dig.com/blog/post/customize-plural-name-django-admin/

그러나 이제는 modeladmin 기반 클래스에서 verbose_name_plural을 설정해도 아무런 효과가 없습니다. 누구든지 같은 문제를 권장합니까?


Django 1.1.1에서 나를 위해 작동합니다 ... 메타 중첩 클래스 안에 넣었습니까?
rescdsk

yah, 나는 새로운 버전이 모델 내부의 내부 메타 클래스를 제거한다고 생각했습니다. 분명히 아닙니다-그들은 단지 관리 클래스로 일을 더 복잡하게 만들었습니다 ...
Andriy Drozdyuk

답변:


274

메타 클래스 접근 방식이 여전히 작동하는 것처럼 보입니다. 따라서 모델 내에 메타 클래스를 배치하면 여전히 트릭을 수행합니다.

class Category(models.Model):
    class Meta:
        verbose_name_plural = "categories"

django는 필요할 때 대문자를 사용할 수있을만큼 똑똑하기 때문에 소문자를 사용합니다.

admin.py 파일이 아닌 모델 클래스 에서이 옵션을 설정하는 것을 발견했습니다. 다음은 dev 문서에서 설명하는 위치입니다.
http://docs.djangoproject.com/en/dev/ref/models/options/#verbose-name-plural


20
모델 클래스 (admin.py 대신)에서 이것을 설정한다는 아이디어는 DRY로 귀결됩니다 . 관리자가 모델에 대한이 정보를 사용하는 즉시 사용할 수있는 유일한 방법이기 때문에 항상 모델을 의미하지는 않습니다 있다. 자신의 코드 어딘가에 모델의 복수 이름이 필요한 경우 바퀴를 다시 발명하는 대신이 속성을 사용하기를 바랍니다.
cibyr

11

이를 위해 모델에 메타 클래스를 추가해야합니다.

class Category(models.Model):
    --- model field here ---
    class Meta: 
        verbose_name = "Category"
        verbose_name_plural = "Categories"

apps.py에서 모델 관리자를위한 보너스

class CategoryConfig(AppConfig):
    name = "Category"
    verbose_name = "Categories"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.