我有以下型号:
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创建新用户时在选择器上显示所有这些选项?
答案 0 :(得分:0)
user = User(pk=1, position=12312)
这没有显示任何错误,因为在初始化对象时,未验证该值,但是当您尝试保存对象时,它将显示错误。您需要用户
forms.ChoiceField(choices=POSSIBLE_POSITIONS, widget=forms.Select())
选择器上的选项。