【问题标题】:How to store just single or just two Records/objects instead of multiple in Django Model?如何在 Django 模型中只存储一个或两个记录/对象而不是多个?
【发布时间】:2020-07-24 07:11:10
【问题描述】:

我只想在模型中存储一个或可能只是两个对象,但不会更多。并且没有人可以在该模型中添加更多对象。我该怎么做 django 中是否有任何选项可以使用它?

基本上我只想指定存储在模型中的对象范围。

谢谢。

【问题讨论】:

  • 您可以添加条件来创建新记录:if len(model.objects.all()) > 10: don't create new ones
  • 你可以覆盖 save() 方法
  • 您能否提供更多有关您要解决的问题的背景信息?例如,您可能希望以字段的唯一约束会阻止您添加新对象的方式创建架构。

标签: python django database object django-models


【解决方案1】:

你可以这样做

假设我有人员模型,我希望只创建两条记录

class People(models.Model):
    name = models.CharField(max_length=255)

    def save(self,*args,**kwargs):
        if People.objects.count() > 1:
            return False # or you can raise validation error
        else:
            super(People,self).save(*args,**kwargs)

【讨论】:

    【解决方案2】:

    您可以覆盖保存方法并设置条件

    class Test(models.Model):
        name = models.CharField(max_length=100)
    
        def save(self, *args, **kwargs):
            if Test.objects.count() > 1:
                raise ValidationError("You can't save more than two items")
            super(Test, self).save(*args, **kwargs)
    

    【讨论】:

    • 如何在 Django 管理面板工作模型页面上显示错误消息而不是引发验证错误?
    • 你可以使用django消息框架。 medium.com/@MicroPyramid/… 但还是有很多方法
    猜你喜欢
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2022-10-14
    • 2021-12-31
    • 2018-02-23
    相关资源
    最近更新 更多