【问题标题】:Is it possible to have an external file input for choicefields in django?django 中的选择字段是否可以有外部文件输入?
【发布时间】:2020-06-03 02:09:42
【问题描述】:

我的 Django 模型中有 ChoiceField,它由多个选项组成,我在表单中使用 CheckboxSelectMultiple 小部件来获得多个选择选项。

模型-

BREAKFAST_CHOICES = (('fruits', 'A bowl of fruits with nuts'),
                           ('tofu', 'Tofu Omlette'),
                           ('1', 'Option 1'),
                           ('2', 'Option 2'),
                           ('3', 'Option 3'),)
    breakfast = MultiSelectField(choices=VBREAKFAST_CHOICES, null=True, blank=True, default=False)

表格-

widgets = {
        'breakfast': forms.CheckboxSelectMultiple,
}

现在,将来如果我想用其他一些选项更改现有选项(选项)或添加和删除选项,我该怎么做? 非程序员是否有更简单的方法可以从外部更新文件并实现这一目标?即我的选择字段可以获取一个包含选项列表的外部文件,这些选项可以在需要时进行编辑。

【问题讨论】:

    标签: python django django-models django-forms django-file-upload


    【解决方案1】:

    这只是示例代码。基本上你在这里做的是你做两个模型早餐和早餐食品。

    在你的models.py中

    class BreakfastFood(models.Model):
    
       name = models.CharField(max_length=100)
    
    
    class Breakfast(models.Model):
    
       breakfast = models.ForeignKey(BreakfastFood, on_delete=models.CASCADE)
    

    通过这种方式,您可以创建一个动态选择字段,您无需查看代码即可添加、删除或更新项目。无论您在早餐食品模型名称字段中创建或删除什么,都会在早餐字段中自动更改。如果您有想法,请尝试一次。

    【讨论】:

      【解决方案2】:

      您可以使用外键关系。这样您就可以使选择字段动态化。

      【讨论】:

      • 我是编程新手,所以我知道如何在这里实现外键会有帮助吗?我希望能够从系统上的外部文件中获取我的选择,这样每次我想更改菜单时,我都可以在外部更新文件而不必更改代码
      猜你喜欢
      • 2015-09-01
      • 2022-08-04
      • 1970-01-01
      • 2017-08-26
      • 2013-12-19
      • 2010-10-13
      • 2011-06-18
      • 1970-01-01
      相关资源
      最近更新 更多