장고 모델 상속. 필드를 숨기거나 제거합니다
-
03-07-2019 - |
문제
일부 타사 코드에서 모델 클래스를 상속하고 싶습니다. 일부 필드를 사용하지는 않지만 클라이언트가 관리자에서 모델을 편집 할 수 있기를 원합니다. 관리자에게서 숨기는 것이 가장 좋은 방법입니까, 아니면 실제로 처음에 생성되는 것을 방지 할 수 있습니까?
또한 - 원치 않는 필드 중 하나가 필요한 경우 어떻게해야합니까? 저의 첫 번째 생각은 저장 메소드를 무시하고 기본값을 넣는 것입니다.
해결책
모델을 상속하는 경우 기존 필드를 숨기거나 비활성화하는 것이 현명하지 않을 것입니다. 아마도 당신이 할 수있는 가장 좋은 일은 정확히 당신이 제안한 것입니다 : Override save()
그리고 당신의 논리를 거기에서 처리하십시오.
다른 팁
관리자에서 편집 할 수있는 필드를 제어 할 수 있습니다.
Django 문서에서 :
"이름과 제목 필드 만 포함 된 저자 모델의 양식을 원한다면 필드를 지정하거나 다음과 같이 제외합니다.
class AuthorAdmin(admin.ModelAdmin):
fields = ('name', 'title')
class AuthorAdmin(admin.ModelAdmin):
exclude = ('birth_date',)"
상속하지 않고 맞춤형 양식을 사용하는 것을 고려하십시오.
여전히 모델에있는 디스플레이에서 필드를 제거 할 수 있습니다.
양식에서 기본값을 검증하고 제공 할 수 있습니다.
clean()
방법.
보다 http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin
제휴하지 않습니다 StackOverflow