如何在模板中获取表单的外键值?

Posted

技术标签:

【中文标题】如何在模板中获取表单的外键值?【英文标题】:How do I get the foreign key values of a form in a template? 【发布时间】:2015-06-17 11:52:46 【问题描述】:

所以我尝试创建一个类似 django admin 的面板,虽然我的表格设置了查询信息和过滤器,但我试图通过创建可以在表格中编辑的字段来复制“可编辑”选项。我的问题是假设我有模型:

class model1(model.Models):
  name = CharField(max_length = 20)
  phone = IntegerField(max_length = 20)
  def __unicode__(self):
     return (#I Just return the name and phone number as a string here)

class model2(model.Models):
  name = ForeignKeyFeild(model1)
  team = CharField(max_length = 20)

如果我在视图中像这样设置模型表单集工厂:

qset = model2.objects.all()
fset = modelformset_factory(model2)
form = fset(queryset = qset)

如何在模板中显示模型 1 中“电话”的值?

当我在模板中渲染表单时:

% for f in form %
  f.team.value # this gives me the value without an input field
  f.name.phone.value # this however renders nothing and that's what I'm trying to find out
%endfor%

另外,我怎样才能让f.name.value 向我显示 unicode 字符串而不是实际的数值 (ID)?

我怎样才能让 f.name.phone 显示它包含foreign_key 的表中的信息?

如果没有,有更好的方法吗?

【问题讨论】:

【参考方案1】:

原始模型对象可用作表单的instance 属性:

% for f in form %
     f.instance.team 
     f.instance.name.phone 
% endfor %

【讨论】:

非常感谢你,如果你知道我在这件事上被困了多久......老兄,你是一个 django 大师(我知道你以前帮助过我几次)

以上是关于如何在模板中获取表单的外键值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Django中查询具有特定数量的外键关系并且在这些外键值中具有特定值的对象?

存储来自 2 个表 Laravel 的外键值

如何在 html 模板中显示 nut、date 字段?如何访问 html 模板中的外键字段?

姜戈。从表单对象访问模板中的外键字段

Django:如何在手动表单字段中显示模型的外键对象作为选择

JPA:查询以根据实体类中定义的外键值获取结果?