django admin - raw_id_fields, search_fields problem
raw_id_fields와 search_fields는 같은 app의 model에 register로 등록되지 않으면
제대로 동작하지 않는다는 문제를 가지고 있다.
때문에, override를 통한 작업을 하거나 다른 방법을 사용해야 한다.
물론 override는 숙련된 개발자가 아니고서는 어렵다.
나 또한 모든 구조를 이해하는 사람이 아니라 판단하기에
보편적이지 않은 override는 좋아하지 않는다.
우연하게 관련한 문제들이 버그로 여겨지고
오랫동안 다뤄져 왔다는 것을 확인하게 되었다.
물론 글이 많지는 않다.
안쓰고 말지라는 생각이 더 많기 때문이었을거다
아니면 template에서 자체적으로 구현하고 말지라는 생각을 하기도 한다.
해결 방법을 간단한 tric을 통해 얻을 수 있는걸 알게 되었고
관련해서 기록을 한다.
raw_id_fields와 관련되는 테이블을 동일한 app의 admin에서
등록을 해주면 된다.
하지만 이러면 메뉴에 해당 테이블이 등록된다.
이를 방지하기 위해 admin을 선언해 준다
예시는 다음과 같다.
class ProjectPostHiddenAdmin(admin.ModelAdmin):
def get_model_perms(self, request): #tric regist
return {}
portfolio_admin_site.register(ProjectPost,ProjectPostHiddenAdmin)
portfolio_admin_site는 해당 app의 admin을 별개의 페이지로 분리하는데 사용한 변수명이다.
기존대로 사용해도 무방하다.
핵심은 get_model_perms 함수를 등록하되 return {}의 값을 전달하면 된다.
구조는 대충 이해는 되지만, 명확한 이해는 못하고 있다.
그리고 다른 사람들과 마찬가지로 여전히 왜 접근을 못하고 가져오지 못하는지
이해가 안된다.
choice필드로는 자동적으로 접근을 하고 데이터를 가져오는데 말이다.
때문에 나도 이 현상은 버그가 아닌가 싶다.
'Study > django' 카테고리의 다른 글
django에서 redis 사용하기 1편 (캐시 사용: 데이터 / 세션) (1) | 2023.02.16 |
---|---|
i18n 다국어 기능 적용하는 방법 (1) | 2023.01.11 |
devspoon-portfolio-blog 오픈소스에 admin 기능 구현하기 (0) | 2022.12.11 |
Django ORM Cookbook 학습 정리 (0) | 2022.12.07 |
Django Admin Cookbook 학습 정리 - 기대보다 큰 배움 (0) | 2022.12.01 |
댓글