Я хочу установить ограничение на количество строк только до 5 строк, которые будут добавляться из панели администратора django.models

У меня есть таблица в моем файле models и я хочу спроектировать ее так, чтобы было ограничение только на 5 строк в таблице. При превышении лимита должна появляться ошибка и ввод не должен осуществляться.Я новичок в Django, поэтому если у кого-то есть предложение, как это сделать, буду очень признателен!

Вы можете установить ограничение на эту конкретную модель, переопределив has_add_permission() в файле admin.py. Например:

admin.py файл:

# Let's say you have a model called Post
from django.contrib import admin
from .models import Post

MAX_OBJECTS = 5

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
     list_display = ['field 1', 'field 2', 'etc.']
     # other class attributes can be set here as well.

     # To allow the user to be able to add only 5 objects/rows for this model (The Post Model).
     def has_add_permission(self, request):
          if self.model.objects.count() >= MAX_OBJECTS:
               return False
          return super().has_add_permission(request)

Этот подход можно использовать, но при этом не будет никаких сообщений об ошибках. Если существует пять существующих rows, то add button не будет visible на сайте администратора Django.

Вы также можете узнать больше о настройке сайта администратора Django в docs.

Вернуться на верх