假设我有一个可供选择的模型,请参见下文(这是django doc示例)。 我需要的是我的Web应用程序能够动态添加和删除选项,我需要我的模型来更新这些选择。实际上,最好的方法是将选择存储在单独的数据库中,并使模型通过ForeignKey与它们建立关系。如何修改代码,以便我仍然可以在模型中选择?感谢。
from django.db import models
class Student(models.Model):
YEAR_IN_SCHOOL_CHOICES = [
('FR', 'Freshman'),
('SO', 'Sophomore'),
('JR', 'Junior'),
('SR', 'Senior'),
]
year_in_school = models.CharField(max_length=2,
choices=YEAR_IN_SCHOOL_CHOICES,
default=FRESHMAN)
答案 0 :(得分:1)
Tuple
is an Immutable object,您不能够添加/删除选项。要实现您的目标,您需要持久存储。换句话说,它是从数据库中存储/检索的。
我建议将其设为ForeignKey
字段,并将现有选项作为initial fixture加载到数据库中。
from django.db import models
class Student(models.Model):
year_in_school = models.ForeignKey('YearChoices', default= get_default_year())
class YearChoices(models.Model):
year_in_school = models.CharField(max_length=20)
我可以想到实现它的一种方式是,在表单中,CharField
with autocomplete choices来自YearChoices
表,而POST
,如果选择不< / em> exists,在YearChoices
表中创建一个新条目。