Django模型选择示例

时间:2018-04-05 17:10:01

标签: django models multiple-choice

我有以下型号:

POSSIBLE_POSITIONS = (
    (1, 'Brazo'),
    (2, 'Muñeca'),
    (3, 'Pierna'),
    (4, 'Pie'),
)

class Device(models.Model):
    id = models.CharField(max_length=10, primary_key=True)

class User(models.Model):
    id = models.CharField(max_length=10, primary_key=True)
    device = models.ForeignKey(Device, blank=True, null=True, on_delete=models.SET_NULL)
    position = models.CharField(max_length=1, choices=POSSIBLE_POSITIONS, default=1)

我想知道如何使用该词典。如果我去Django shell,我会做以下工作:

user = User(pk=1, position=12312)

为什么这个工作? 12312不是POSSIBLE_POSITIONS的可能选择。

如何换取字符串的数字?

另外,如何在通过html创建新用户时在选择器上显示所有这些选项?

1 个答案:

答案 0 :(得分:0)

user = User(pk=1, position=12312)

这没有显示任何错误,因为在初始化对象时,未验证该值,但是当您尝试保存对象时,它将显示错误。您需要用户

forms.ChoiceField(choices=POSSIBLE_POSITIONS, widget=forms.Select()) 

选择器上的选项。