【问题标题】: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 的表中的信息?

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

【问题讨论】:

    标签: django django-models django-forms django-templates django-admin


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢你,如果你知道我在这件事上被困了多久......老兄,你是一个 django 大师(我知道你以前帮助过我几次)
    猜你喜欢
    • 2011-11-22
    • 2011-11-03
    • 2021-08-31
    • 2019-09-23
    • 2019-12-03
    • 2018-04-14
    • 2017-07-25
    • 2016-07-10
    • 1970-01-01
    相关资源
    最近更新 更多