Я хочу установить ограничение на количество строк только до 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.