Как ограничить ввод администратора после определенного количества записей в админке Django? - PullRequest
1 голос
/ 22 октября 2019

Я изучал django около 1 месяца, когда приходил к администратору django. Я хочу ограничить ввод данных от администратора не более 5, чтобы при отображении модели db на веб-странице было не более 5, вы можете помочьмне это жаль, если это слишком просто. Моя модель

class Top5Restaurants(models.Model):
    Restaurants=models.CharField(max_length=20)

    def __str__(self):
        return( self.Restaurants)
    class Meta:
        verbose_name = 'Top 5 Restaurant'
        verbose_name_plural = 'Top_5_Restaurants'

Теперь я не хочу больше 5 записей ресторанов из интерфейса администратора, если администратор пытается ввести более 5 записей, я хочу, чтобы опция входа былазаблокирован, пока администратор не удалит одну из введенных баз данных.

1 Ответ

1 голос
/ 22 октября 2019

Вы можете ограничить количество экземпляров, которые может иметь модель (здесь Top_5_Restaurants), проверяя экземпляр модели, который создается / редактируется . Также обратите внимание, что атрибут pk устанавливается на None во время создания экземпляра (против обновлений экземпляра)

class Top_5_Restaurants(models.Model):
    def clean(self):
        if (Top_5_Restaurants.objects.count() >= 5 and self.pk is None):
            raise ValidationError("Can only create five Top_5_Restaurants instances. Try editing/removing one of the existing instances.")

(полезный совет: классы моделей обычно именуются в полях PascalCase, а поля моделей в camelCase)

...