문제

일부 타사 코드에서 모델 클래스를 상속하고 싶습니다. 일부 필드를 사용하지는 않지만 클라이언트가 관리자에서 모델을 편집 할 수 있기를 원합니다. 관리자에게서 숨기는 것이 가장 좋은 방법입니까, 아니면 실제로 처음에 생성되는 것을 방지 할 수 있습니까?

또한 - 원치 않는 필드 중 하나가 필요한 경우 어떻게해야합니까? 저의 첫 번째 생각은 저장 메소드를 무시하고 기본값을 넣는 것입니다.

도움이 되었습니까?

해결책

모델을 상속하는 경우 기존 필드를 숨기거나 비활성화하는 것이 현명하지 않을 것입니다. 아마도 당신이 할 수있는 가장 좋은 일은 정확히 당신이 제안한 것입니다 : Override save() 그리고 당신의 논리를 거기에서 처리하십시오.

다른 팁

관리자에서 편집 할 수있는 필드를 제어 할 수 있습니다.

Django 문서에서 :

"이름과 제목 필드 만 포함 된 저자 모델의 양식을 원한다면 필드를 지정하거나 다음과 같이 제외합니다.

class AuthorAdmin(admin.ModelAdmin):
    fields = ('name', 'title')

class AuthorAdmin(admin.ModelAdmin):
    exclude = ('birth_date',)"

http://docs.djangoproject.com/en/dev/ref/contrib/admin/

상속하지 않고 맞춤형 양식을 사용하는 것을 고려하십시오.

  1. 여전히 모델에있는 디스플레이에서 필드를 제거 할 수 있습니다.

  2. 양식에서 기본값을 검증하고 제공 할 수 있습니다. clean() 방법.

보다 http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top