Django ModelChoiceField初始数据对ForeignKey无效

2 投票
2 回答
1348 浏览
提问于 2025-04-15 13:41

我正在用一些初始数据来填充我的表单,使用的是正常的方法:

form = somethingForm(initial = {
                    'title' : something.title,                    
                    'category' : something.category_id,
                })

标题部分工作得很好,但如果类别是一个ModelChoiceField,并且在模型中是一个外键,那么初始数据就不管用了。下拉框里什么都不会被选中。如果我把类别改成一个整数字段,效果就正常了。

不过我还是想用外键来表示类别,那我该怎么解决这个问题呢?

2 个回答

0

你需要这样做

form = somethingForm(initial = {
                    'title' : something.title,                    
                    'category' : [("database value","display value")],
                })

为什么用元组列表?

  1. 因为选择字段是和下拉框(也就是网页上的选择框)相关联的。

  2. 对于每个选项,我们需要指定两件事:1. 内部值 2. 显示值(列表中的每个元组就是用来指定这两者的)。

1

也许可以试试用一个类别的实例,而不是它的ID?

撰写回答