작성
·
116
답변 1
1
안녕하세요.
질문 확인했습니다.
일단 get_queryset 을 사용하면 어떻게 되는지 말씀 드리겠습니다.
사용하게 되면, 프로젝트 객체들 전체에 대해서 CRUD 패턴을 적용하는 것이 아닌,
해당 queryset 내부의 객체들만 적용할 수 있게 됩니다.
말씀하신 그대로죠.
model = Project
라고 적어놓는 것은,
따로 설명드리지는 않았지만 get_queryset 으로 변경하면
def get_queryset:
return Project.objects.all()
과 같은 효과를 가집니다.
그렇다면 filter 와 같은 메서드를 통해 적용될 객체 범위를 조절할 수도 있겠죠.
그리고 만약 특정 게시판에 관리자만 게시글을 작성하는 기능을 만들려면,
여러가지 방법이 있을 수 있겠죠.
특정 ID 를 가진 게시판에 게시글을 작성하려 하면,
해당 유저가 관리자인지 is_superuser 혹은 is_staff 등의 값으로 인증하는 과정을 만들수도 있을것이구요.
이때 구현하는 내용은 form_valid 메서드에 포함시킬수도,
decorator 내부에 작성할 수도 있을 것 같습니다.
아니면 애초에 관리자만이 접근할 수 있는 게시판을 Project 라는 앱에 포함시키지 않고,
별도의 앱으로 분리하는 방법도 가능하겠죠.
물론 게시판 한두개만 그런식으로 관리하려면 조금 귀찮은 일이 되겠지만,
Project 앱의 로직을 너무 복잡하게 만들고 싶지 않다면 이런 방법도 가능할 것 같습니다.
답변이 도움이 되셨길 바랍니다.
좋은하루 보내시구요!
감사합니다-