如何更改Django模型中的选择?

2024-09-30 03:22:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django模型,它使用choicesattribute。在

COLOR_CHOICES = (
    ('R', 'Red'),
    ('B', 'Blue'),
)
class Toy(models.Model):
    color = models.CharField(max_length=1, choices=COLOR_CHOICES)

我的代码正在生产中,现在我想添加其他选项。在

^{pr2}$

我该怎么做?Django是否使用数据库约束来强制执行选择?{I需要使用^ m数据库进行迁移吗?或者Django只是在Python代码中强制执行choices限制,而我所要做的就是更改代码并重新启动?在

谢谢!在


Tags: django代码模型数据库modelmodelsbluered
2条回答

Django不在数据库级别上强制执行选择,它只将它们用于小部件的表示和验证。如果您希望它们更“动态”,例如在不同的服务器上有不同的服务器,您可以通过settings.py来定义它们:

from django.conf import settings

COLOR_CHOICES = getattr(settings, 'COLOR_CHOICES',(
        ('R', 'Red'),
        ('B', 'Blue'),
        ('G', 'Green'),
 ))

然后您可以在settings.py中定义不同的选择(不需要任何数据库迁移!)。在

字段是models.CharField,因此数据库将把它当作在django中设置的任何其他models.CharField一样对待它:)

不,它不强制选择/你不需要接触你的数据库。在

相关问题 更多 >

    热门问题