ホームページ >バックエンド開発 >Python チュートリアル >Django 管理パネルで管理者の編集を無効にする方法
django管理パネル:データ管理のための読み取り専用アプローチ
Django管理パネルは、モデル、データ、およびユーザーを管理するためのユーザーフレンドリーなインターフェイスを提供します。 組み込みの検索およびフィルタリング機能は非常に便利です。ただし、特定のモデルまたはフィールドへの編集アクセスを制限することが重要な場合があります。 これは、データの整合性を維持し、偶発的な変更を防ぐ必要がある場合、またはパネルがデータ表示のみである場合に特に当てはまります。
実用的な例管理パネルの概要:
個々のエントリページ:
1。モデル定義
スクレイプ化されたプロパティデータの保存に使用されるコアモデル:
2。管理者パネルのカスタマイズ(
ファイル内のメソッドをオーバーライドします:
<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 中国語 Web サイトの他の関連記事を参照してください。