Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模型实例常数_Python_Django - Fatal编程技术网

Python Django模型实例常数

Python Django模型实例常数,python,django,Python,Django,我想要模型实例的常量。简化后,看起来是这样的: class MyModel(models.Model): codename = models.CharField(max_length=50, unique=True) constant1 = MyModel.objects.get_or_create(codename="cool") 当然,我不能这么简单地做到这一点,因为这段代码会在任何迁移完成之前尝试将数据放入数据库中,或者会失败,因为在某个时候“没有加载模型”等等。但我真的希望有

我想要模型实例的常量。简化后,看起来是这样的:

class MyModel(models.Model):
    codename = models.CharField(max_length=50, unique=True)

constant1 = MyModel.objects.get_or_create(codename="cool")
当然,我不能这么简单地做到这一点,因为这段代码会在任何迁移完成之前尝试将数据放入数据库中,或者会失败,因为在某个时候“没有加载模型”等等。但我真的希望有这样的常量,因为我发现它便于导入

对我来说,显而易见的解决方案是生成函数,比如“def constant1():…”或“def get_constant1():…”,它们将做同样的事情,但在迁移阶段不会导致任何问题

但是我想访问我的“constant1”,比如变量(something=constant1),而不是函数(something=constant1())


请告诉我,有没有正确的方法来实现这样的常量,或者我应该放弃?

为什么必须在同一个文件中这样做?它不是常量,充其量只是一个众所周知的对象,但它仍然会从数据库中提取出来。本质上:用已知对象填充数据库,并提供查询已知对象的方法。您的
constant1
将反映对象在定义“常量”时的状态,而不是在您使用对象时的状态。。。祝你调试得愉快。@dhke当然,我同意。这完全是预期的行为。为什么有必要在同一个文件中执行此操作?它不是常量,充其量是一个众所周知的对象,但仍然会从数据库中提取。本质上:用已知对象填充数据库,并提供查询已知对象的方法。您的
constant1
将反映对象在定义“常量”时的状态,而不是在您使用对象时的状态。。。祝你调试得愉快。@dhke当然,我同意。这完全是意料之中的行为。