0

假设我有一个可供选择的模型,请参见下文(这是 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)
4

1 回答 1

1

Tuple是一个不可变对象,您将无法添加/删除选择。要实现您的目标,您需要一个持久存储。换句话说,它要从数据库中存储/检索。

我建议将其设为一个ForeignKey字段,并将现有选择作为初始固定装置加载到数据库中。

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)

我能想到的实现它的一种方法是,在表格中,从table 中CharField选择一个带有自动完成的选项,如果选择不存在,则在 table 中创建一个新条目。YearChoicesPOSTYearChoices

于 2013-08-15T02:13:52.340 回答