如何在django中限制添加到模型

如何在django中限制添加到模型,django,django-models,django-forms,django-views,django-templates,Django,Django Models,Django Forms,Django Views,Django Templates,如何在django中限制添加到模型?我只想在这个模型上创建一个公司,只有一个,所以如果用户想添加更多,这是不可能的 class Company(models.Model): name = models.CharField(max_length=64) address = models.TextField(max_length=250) 解决方案之一是覆盖公司的save方法 class Company(models.Model): name = models.CharFi

如何在django中限制添加到模型?我只想在这个模型上创建一个公司,只有一个,所以如果用户想添加更多,这是不可能的

class Company(models.Model):
    name = models.CharField(max_length=64)
    address = models.TextField(max_length=250)

解决方案之一是覆盖公司的save方法

class Company(models.Model):
    name = models.CharField(max_length=64)
    address = models.TextField(max_length=250)

    def save(self, *args, **kwargs):
        if Company.objects.exists():
            return
        super().save(*args, **kwargs)
        

但你的问题很简短,也不精确,所以这可能不是你想要它的行为方式

解决方案之一是在公司上覆盖save方法

class Company(models.Model):
    name = models.CharField(max_length=64)
    address = models.TextField(max_length=250)

    def save(self, *args, **kwargs):
        if Company.objects.exists():
            return
        super().save(*args, **kwargs)
        

但是你的问题很短,也不精确,所以这可能不是你想要的行为方式

这听起来像是“单例”设计模式。下面是一篇关于将其应用于django模型的帖子:这听起来像是“singleton”设计模式。下面是一篇关于将其应用于django模式的帖子:想法是只有一家公司,只有一张唱片,我会尝试这个选项,或者如果你有任何其他建议,你能解释一下它是如何不起作用的吗?代码非常简单->如果公司数据库中存在行->跳过新实例保存。它很难不工作只是再试一次,它显示好像它是有效的,消息是该公司保存,但当我检查数据库它没有。也在模板上。保存的消息不可理解。当您深入研究django时,您会注意到,当模型表单被证明是有效的时,显示的消息通常是“委托的”。在这种情况下,第二个实例的表单是有效的,因此消息设置为以响应形式显示,并且调用model
save()
方法,但由于其重写,它基本上不会执行任何操作,因此不会创建新实例。想法是只有一个公司,只有一条记录,我将尝试此选项,或者,如果你有任何其他建议,你能解释一下它是如何不起作用的吗?代码非常简单->如果公司数据库中存在行->跳过新实例保存。它很难不工作只是再试一次,它显示好像它是有效的,消息是该公司保存,但当我检查数据库它没有。也在模板上。保存的消息不可理解。当您深入研究django时,您会注意到,当模型表单被证明是有效的时,显示的消息通常是“委托的”。在这种情况下,第二个实例的表单是有效的,因此消息被设置为随响应一起显示,并且调用model
save()
方法,但由于其重写,它基本上不会执行任何操作,因此不会创建新实例。