如何使用Django中的模型字段设置动态选择字段

时间:2016-11-25 09:30:38

标签: python django python-3.x django-models

我如何使用动态选择'从另一个模型字段生成?我想在没有编辑代码/元组的情况下为名为color的字段添加新选项。下面的示例演示了我已经尝试过的内容,但在此示例中,选择'不希望使用模型,所以这不起作用!这是可能的,如果是这样,最好的方法是什么?

class Furniture(models.Model):
     color = models.CharField(max_length=50, choices=FurnitureChoices)


class FurnitureChoices(models.Model):
      color = models.CharField(max_length=50)

对我感兴趣的模型不是FK,而是允许用户自己添加其他选择的能力。

1 个答案:

答案 0 :(得分:0)

您可以使用ForeignKey执行此操作。

class Furniture(models.Model):
     color = models.ForeignKey(FurnitureChoices)


class FurnitureChoices(models.Model):
      color = models.CharField(max_length=50)

或者你可以这样做:

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