Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Melumpuhkan Pengeditan Admin di Panel Admin Django

Cara Melumpuhkan Pengeditan Admin di Panel Admin Django

Barbara Streisand
Barbara Streisandasal
2025-01-27 06:12:08980semak imbas

Panel Pentadbiran Django: Pendekatan Baca Sahaja untuk Pengurusan Data

Panel Pentadbiran Django menawarkan antara muka mesra pengguna untuk mengurus model, data dan pengguna. Keupayaan carian dan penapisan terbina dalamnya adalah sangat mudah. Walau bagaimanapun, kadangkala menyekat akses pengeditan kepada model atau medan tertentu adalah penting. Ini benar terutamanya apabila integriti data perlu dikekalkan, menghalang pengubahsuaian yang tidak disengajakan atau apabila panel adalah semata-mata untuk melihat data.

Contoh Praktikal

Baru-baru ini, pelanggan memerlukan penyelesaian untuk melihat, menapis dan menapis data yang dikikis daripada tapak web luaran – khususnya, menjejak penyenaraian hartanah baharu. Django menyediakan penyelesaian yang elegan, membenarkan pengurusan data tanpa memerlukan penciptaan halaman tersuai.

Di bawah ialah tangkapan skrin yang menggambarkan pelaksanaan:

Gambaran Keseluruhan Panel Pentadbir:

How to disable admin editing in Django Admin Panel

Paparan ini hanya menunjukkan pilihan import/eksport; menambah atau mengedit data terus dalam panel pentadbir adalah mustahil.

Halaman Penyertaan Individu:

How to disable admin editing in Django Admin Panel

Begitu juga, halaman sifat individu dipaparkan dalam mod baca sahaja, tidak mempunyai sebarang fungsi edit.

Mari kita terokai cara fungsi baca sahaja ini dilaksanakan dalam Django.

Melumpuhkan Pengeditan dalam Pentadbir Django

1. Definisi Model

Model teras yang digunakan untuk menyimpan data harta benda yang dikikis:

<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. Menyesuaikan Panel Pentadbiran (admin.py)

Untuk melumpuhkan pengeditan, ganti kaedah has_add_permission dan has_change_permission dalam fail admin.py anda:

<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>

Kelas asas (ReadOnlyAdmin) digunakan di sini untuk mengurus list_display untuk pembentangan data yang dipertingkatkan.

Hasilnya

Pendekatan ini mencapai:

  1. Alih keluar butang "Tambah": Pilihan untuk menambah entri baharu dialih keluar sepenuhnya daripada antara muka pentadbir.
  2. Halaman entri baca sahaja: Mengklik pada entri sedia ada membukanya dalam paparan baca sahaja, tanpa butang simpan.

Persediaan ini sesuai untuk senario di mana paparan data adalah yang paling utama dan mengedit atau menambah entri tidak diperlukan atau mungkin bermasalah.

Faedah Panel Admin Baca Sahaja

  • Integriti Data: Menghalang pengubahsuaian yang tidak disengajakan pada data yang diperoleh secara luaran (mis., melalui pengikisan atau API).
  • Paparan Baca Sahaja untuk Data Rujukan: Sesuai untuk melihat dan menapis data dalam aplikasi seperti papan pemuka analitis, penyenaraian hartanah atau log.

Kesimpulan

Melumpuhkan pengeditan dalam Pentadbir Django adalah mudah dan sangat berfaedah untuk melindungi data dan menyediakan akses baca sahaja yang selamat. Dengan mengikut langkah ini, anda boleh membuat panel pentadbir yang selamat dan baca sahaja.

Kekal Terhubung - @syedamahamfahim ?

Atas ialah kandungan terperinci Cara Melumpuhkan Pengeditan Admin di Panel Admin Django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn