Django Admin에서 "추가"기능을 제거 [Duplication
문제
이 질문은 이미 여기에 답이 있습니다.
Django 관리 사이트에서 "추가"기능을 제거하는 방법이 있습니까? 특정 엔티티의 경우 Django 관리자가 기존 관리자를 보거나 기존의 것을 변경할 수 있지만 새 엔티티 만 추가하지 않기를 원합니다.
해결책
물론 지침에 따라 관리자를 매우 세분화 할 수 있습니다. 여기 - 나는 당신이 원하는 것이 부분적으로 우발적으로 얻을 수 있다고 생각합니다. ModelAdmin.save_model(self, request, obj, form, change)
당신 자신의 ModelAdmin
하위 클래스, 상점에서 아무 일도 일어나지 않도록 change
거짓입니다 (즉, 변화보다는 추가하려는 시도). ModelAdmin.add_view(self, request, form_url='', extra_context=None)
"Add View"를 표시하려면 관리자 에게이 경로를 통해 객체를 추가 할 수 없다는 것을 명확하게합니다. 나는 실제로 당신이 필요로하는 특정 관리자 사용자 정의를 수행하지 않았지만 다른 사람을 해냈으며 그들은 매우 순조롭게 작동하는 것 같습니다!
다른 팁
보다: Django Admin- 특정 모델의 '추가'동작 비활성화 진정한 솔루션.
관리자 인터페이스 내에서 각 사용자 그룹의 권한을 사용자 정의 할 수 있습니다. /admin/auth/group
그리고 그것은 거기에서 간단해야합니다.
이것은 이전 답변에서 제공하는 솔루션만큼 세분화되지는 않지만 관리자를 사용자 정의 할 필요없이 대부분의 요구를 처리합니다.
액세스를 제한하기 위해 권한을 변경하면 FK/MTM 필드에 의해 여전히 플러스 부호가 나타납니다. '권한 거부'가있는 팝업 창이 열리는 클릭을 클릭하십시오.
실제로 관리자에게 모델을 등록하지 않으면 서 플러스 부호를 완전히 제거 할 수 있습니다.
사용자가 하나 이상을 선택할 수있는 사전 정의 된 범주가있는 상황이 있습니다. 이를 수행하는 가장 좋은 방법은 Models.manytomany 필드입니다. 관리자에 모델을 등록하고 필요에 따라 데이터를 입력 한 다음 등록을 제거 할 수 있습니다.
쉬운 효과적인 방법은 설정하는 것입니다 max_num=0
그 특정 인라인을 위해.
Satya의 설정 max_num = 0에 대한 제안은 완벽하게 작동합니다.
Modelform 클래스의 Django 문서에 따라 :
JavaScript 지원 브라우저가있는 사용자의 경우 추가 인수의 결과로 제공된 것 외에 추가 인라인을 추가 할 수 있도록 "다른 추가"링크가 제공됩니다.
현재 표시된 양식의 수가 MAX_NUM을 초과하거나 사용자에게 JavaScript가 활성화되지 않은 경우 동적 링크가 나타나지 않습니다.
그리고
일반 양식 세트와 마찬가지로 Max_Num 및 추가 매개 변수를 ModelFormset_factory에 사용하여 표시된 추가 양식 수를 제한 할 수 있습니다.
max_num은 기존 객체가 표시되는 것을 막지 않습니다