Django 관리자 패널: 데이터 관리를 위한 읽기 전용 접근 방식
Django 관리자 패널은 모델, 데이터 및 사용자를 관리하기 위한 사용자 친화적인 인터페이스를 제공합니다. 내장된 검색 및 필터링 기능은 매우 편리합니다. 그러나 때로는 특정 모델이나 필드에 대한 편집 액세스를 제한하는 것이 중요합니다. 실수로 인한 수정을 방지하기 위해 데이터 무결성을 유지해야 하거나 패널이 데이터 보기 전용인 경우 특히 그렇습니다.
최근 한 고객이 외부 웹사이트에서 스크랩한 데이터 보기, 필터링, 페이지 매기기, 특히 새 부동산 목록 추적을 위한 솔루션이 필요했습니다. Django는 맞춤 페이지를 생성할 필요 없이 데이터를 관리할 수 있는 우아한 솔루션을 제공했습니다.
아래는 구현을 보여주는 스크린샷입니다.
이 보기에는 가져오기/내보내기 옵션만 표시됩니다. 관리자 패널 내에서 직접 데이터를 추가하거나 편집하는 것은 불가능합니다.
마찬가지로 개별 속성 페이지는 편집 기능이 없는 읽기 전용 모드로 표시됩니다.
이 읽기 전용 기능이 Django에서 어떻게 구현되었는지 살펴보겠습니다.
스크랩된 자산 데이터를 저장하는 데 사용되는 핵심 모델:
<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>
admin.py
)편집을 비활성화하려면 has_add_permission
파일 내에서 has_change_permission
및 admin.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
)가 사용됩니다.
이 접근 방식을 통해 얻을 수 있는 이점은 다음과 같습니다.
이 설정은 데이터 표시가 가장 중요하고 항목 편집 또는 추가가 불필요하거나 문제가 발생할 수 있는 시나리오에 이상적입니다.
위 내용은 Django 관리자 패널에서 관리자 편집을 비활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!