【问题标题】:How to limit admin input after certain number of entries in Django admin?如何在 Django 管理员中输入一定数量的条目后限制管理员输入?
【发布时间】:2020-02-18 03:51:29
【问题描述】:

我已经学习 django 大约 1 个月来 django admin 我想限制来自 admin 的数据条目不超过 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 个条目,我希望阻止输入选项,直到管理员删除输入的数据库之一。

【问题讨论】:

    标签: python django django-models django-admin


    【解决方案1】:

    您可以通过validating the model instance that is being created/edited 限制模型(此处为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 命名)

    【讨论】:

    • 发生了什么?是在创建新条目吗?
    猜你喜欢
    • 2015-08-29
    • 2019-05-06
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2011-08-13
    • 2011-08-13
    相关资源
    最近更新 更多