Je souhaite enregistrer des données (par exemple, des paramètres) qui n'en nécessitent qu'une au total
Model
models.py
from django.db import models
class Setting(models.Model):
pass
Admin
admin.py
from django.contrib import admin
from .models import Setting
class SettingAdmin(admin.ModelAdmin):
def has_add_permission(self, request):
#Autoriser l'enregistrement d'un seul paramètre
count = Setting.objects.all().count()
if count == 0:
return True
return False
def has_delete_permission(self, request, obj=None):
#Empêcher la suppression des paramètres
return False
admin.site.register(Setting,SettingAdmin)
En remplaçant has_add_permission, vous pouvez contrôler le nombre d'inscriptions et l'impossibilité d'ajouter par utilisateur à partir de request.user. De même, vous pouvez remplacer has_delete_permission pour contrôler la suppression.
Recommended Posts