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