>백엔드 개발 >파이썬 튜토리얼 >Django 관리자 패널에서 관리자 편집을 비활성화하는 방법

Django 관리자 패널에서 관리자 편집을 비활성화하는 방법

Barbara Streisand
Barbara Streisand원래의
2025-01-27 06:12:08942검색

Django 관리자 패널: 데이터 관리를 위한 읽기 전용 접근 방식

Django 관리자 패널은 모델, 데이터 및 사용자를 관리하기 위한 사용자 친화적인 인터페이스를 제공합니다. 내장된 검색 및 필터링 기능은 매우 편리합니다. 그러나 때로는 특정 모델이나 필드에 대한 편집 액세스를 제한하는 것이 중요합니다. 실수로 인한 수정을 방지하기 위해 데이터 무결성을 유지해야 하거나 패널이 데이터 보기 전용인 경우 특히 그렇습니다.

실제예

최근 한 고객이 외부 웹사이트에서 스크랩한 데이터 보기, 필터링, 페이지 매기기, 특히 새 부동산 목록 추적을 위한 솔루션이 필요했습니다. Django는 맞춤 페이지를 생성할 필요 없이 데이터를 관리할 수 있는 우아한 솔루션을 제공했습니다.

아래는 구현을 보여주는 스크린샷입니다.

관리자 패널 개요:

How to disable admin editing in Django Admin Panel

이 보기에는 가져오기/내보내기 옵션만 표시됩니다. 관리자 패널 내에서 직접 데이터를 추가하거나 편집하는 것은 불가능합니다.

개인 응모 페이지:

How to disable admin editing in Django Admin Panel

마찬가지로 개별 속성 페이지는 편집 기능이 없는 읽기 전용 모드로 표시됩니다.

이 읽기 전용 기능이 Django에서 어떻게 구현되었는지 살펴보겠습니다.

Django Admin에서 편집 비활성화

1. 모델 정의

스크랩된 자산 데이터를 저장하는 데 사용되는 핵심 모델:

<code class="language-python">from django.db import models

class Property(models.Model):
    name = models.CharField(max_length=255)
    price = models.IntegerField()
    location = models.CharField(max_length=255)
    date_listed = models.DateField()

    def __str__(self):
        return self.name</code>

2. 관리자 패널 사용자 정의(admin.py)

편집을 비활성화하려면 has_add_permission 파일 내에서 has_change_permissionadmin.py 메소드를 재정의하세요.

<code class="language-python">from django.contrib import admin
from .models import Property

class ReadOnlyAdmin(admin.ModelAdmin):
    list_display = ('name', 'price', 'location', 'date_listed')

    def has_add_permission(self, request):
        return False

    def has_change_permission(self, request, obj=None):
        return False

admin.site.register(Property, ReadOnlyAdmin)</code>

여기에서는 향상된 데이터 표시를 위해 ReadOnlyAdmin를 관리하기 위해 기본 클래스(list_display)가 사용됩니다.

결과

이 접근 방식을 통해 얻을 수 있는 이점은 다음과 같습니다.

  1. "추가" 버튼 제거: 새 항목을 추가하는 옵션이 관리 인터페이스에서 완전히 제거되었습니다.
  2. 읽기 전용 항목 페이지: 기존 항목을 클릭하면 해당 항목이 저장 버튼 없이 읽기 전용 보기로 열립니다.

이 설정은 데이터 표시가 가장 중요하고 항목 편집 또는 추가가 불필요하거나 문제가 발생할 수 있는 시나리오에 이상적입니다.

읽기 전용 관리자 패널의 이점

데이터 무결성 :
    외부 적으로 소스 된 데이터에 대한 우발적 인 수정을 방지합니다 (예 : 스크래핑 또는 API를 통해). 참조 데이터에 대한 읽기 전용보기 :
  • 분석 대시 보드, 속성 목록 또는 로그와 같은 응용 프로그램에서 데이터를보고 필터링하기에 적합합니다. 결론 Django 관리자의 편집 비활성화는 데이터를 보호하고 안전한 읽기 전용 액세스를 제공하는 데 간단하고 유익합니다. 이 단계를 수행하면 안전하고 읽기 전용 관리자 패널을 신속하게 만들 수 있습니다.
  • 연결 상태 - @syedamahamfahim?

위 내용은 Django 관리자 패널에서 관리자 편집을 비활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.