django model设置来自管理面板的字段默认值

时间:2012-11-12 07:44:06

标签: django django-models django-admin

models.py

class MyModel(models.Model):
maximum_limit = models.PositiveIntegerField(default=5)

这里我设置的maximum_limit默认值为5.

但是我想设置一个也可以从admin编辑的值,并在此处用作默认值。 (模型MyModel的可编辑默认值)

我最初的做法是(不工作)。我想要这样的东西。

class MySettings(models.Model):
mx_limit = models.PositiveIntegerField(default=5)

class MyModel(models.Model):
maximum_limit = models.PositiveIntegerField(default=MySettings.mx_limit)

请帮帮我

1 个答案:

答案 0 :(得分:1)

您的方法是错误的,应使用适当的属性设置db值的最大值,即max_value

但是,每次要更改它时,都需要进行模式迁移。所以你真正应该做的是动态表单验证,其中你的表单检查一个设置(它应该保存在你的数据库中,而不是静态存储在像Settings这样的模块中,这需要重启服务器。)

stackoverflow上有很多例子how to make a form validation more dynamically